以下列出密碼學中常見的算法
雜湊演算法是不可逆的,數據再經過雜湊演算法過程中會遺失資訊,用於驗證資料的正確性。
md5使用雜湊演算法,可以將字串、檔案、壓縮包轉成一串128bit。
特性:
用途: 常被用來當作檔案的校驗碼或是不需要被還原的資料,針對相同帳密輸入,會去比對經由md5算法出來後的結果,相同字串則讓使用者登入,但因為輸出輸入輸出固定,因此利用比對生成輸出結果(2^69)是可以被暴力破解的。
由上面md5長度增加到160bit,長度越長越不容易被破解,但SHA-1與md5現今在使用上都已經都不安全。
SHA-1算法加強版,為了解決SHA-1算法被破解而產生,SHA-2有可以生成兩種形式,SHA-256與SHA-512分別可以產生256bit與512bit,為現今被大量使用的算法
為了預防SHA-2被破解,因此SHA-3用了與上述兩種不同的全新的算法去做加密
scrypt是一種密碼衍生演算法,使用scrypt演算法來衍生key,其過程中需要使用到大量的記憶體,scrypt演算法主要為預防暴力破解攻擊
bcrypt使用雜湊演算法,其生成的出來的結果都不一樣,就算相同輸入,輸出的結果都會不一樣,因此如果要使用密碼比對,生成出來的hash值要再經由bcrypt算法提供函數去比對。