MySQL是一款非常流行的關系型數據庫管理系統,它提供了生成安全密碼的方法,保障用戶的密碼安全性。下面我們來詳細了解一下。
mysql>SELECT PASSWORD('mypassword'); +-------------------------------------------+ | PASSWORD('mypassword') | +-------------------------------------------+ | *7373871C59420C9AF9EF9CB3D2E703B8D5BDE99D | +-------------------------------------------+
MySQL的密碼函數PASSWORD()將輸入的字符串生成一個加密后的字符串。生成的字符串長度為41,前標識符“*”指明了使用的加密算法,后面的40個字符就是密碼的密文。
這里的加密算法是簡單的SHA1,MySQL的加密方式是HASH+salt(即散列+鹽值),原始密碼先通過SHA1算法得到一個160位的摘要值,再將這個摘要值與隨機鹽值進行連接,得出最終密碼字符串。
mysql>SELECT SHA1(CONCAT('salt', SHA1('mypassword'))); +------------------------------------------------------+ | SHA1(CONCAT('salt', SHA1('mypassword'))) | +------------------------------------------------------+ | fc331fd8c075341d7ea17c1b22a9b074e1f76fd | +------------------------------------------------------+
使用CONCAT()連接鹽值和原始密碼的摘要值,再使用SHA1()函數生成SHA1摘要值。最后將摘要值和鹽值再次連接,并使用PASSWORD()函數加密得到最終的密文。
MySQL的加密方式保證了密碼的安全性,提高了系統的安全防范能力。但是在使用時,要注意生成的密碼長度不能超過41個字符,否則會被截斷,導致登錄失敗。
下一篇css 文字變換特效