• 密碼的儲存用哪一種演算法?

    Image result for password encryption

    您選對了嗎? 密碼儲存的演算法, MD5, SHA, PBKDF2, BCrypt

    這邊文章主要說明密碼的儲存要用哪一種加密演算法儲存?

    各種演算法的優缺點? 業界與相關標準的建議

    MD5

    這是目前業界算是禁止使用的演算法

    優點是快速 , 但是卻很快就會被破解, 只有128bit

    除此之外, 該演算法很容易產生  collision

    也就是說計算出來的 Hash值有可能重複

    密碼 Hash的儲存通常會加上一個隨機數 (Salt)的方式當作參數

    Hash = (password, 隨機數 Salt)

    這樣一來, 駭客才無法用字典檔案產生一組 Hash來猜出原始密碼

    SHA

    SHA1 也被認定為弱演算法, 因此業界普遍使用SHA256

    • SHA-1 (Simplest one – 160 bits Hash)
    • SHA-256 (Stronger than SHA-1 – 256 bits Hash)
    • SHA-384 (Stronger than SHA-256 – 384 bits Hash)
    • SHA-512 (Stronger than SHA-384 – 512 bits Hash)

    但是密碼儲存我們也通常不會使用 SHA的方式

    密碼的儲存主要使用的演算法是 PBKDF2, BCrypt, Script

    PBKDF2, BCrypt , Scrypt的出現

    這三個是目前業界普遍使用來儲存密碼的 Hash演算法

    PBKDF2, BCrypt, Script有一個共通的特色,

    就是讓電腦執行速度變得很慢

    因此, 這樣的演算法有助於防止暴力破解

    哪一個演算法比較推薦呢?

    由於美國 NIST 與FIPS標準推薦使用 PBKDF2

    因此, 也讓 PBKDF2 更為有公信力

    倒不是因為其他兩個演算法比較弱或是有被找到漏洞

    所以如果您的密碼儲存演算法不是這三個其中之一的話

    要好好跟開發團隊討論討論囉.

    演算法比較

     

    相關標準: PBKDF2

     

    參考

     

     

    Posted by Tony @ 9:50 pm

  • Leave a Reply

    Your email address will not be published.