MySQL 中雜湊密碼欄位應使用什麼資料型別?
雜湊密碼的資料型別取決於我們使用的雜湊演算法。雜湊演算法不取決於輸入大小,因為它產生的結果長度相同。它以一系列十六進位制數字的形式給出結果,我們可以藉助 UNHEX() 函式將十六進位制數字減少一半。
有多種演算法和資料型別用於儲存值。
MD5 − 它可以使用 char(32) 或 BINARY(16)。
SHA-1 − 它可以使用資料型別 char(40) 或 BINARY(20)。
MD5 示例
以下是一個示例 −
mysql> select MD5('This is a hashed password');
以下是輸出。
+----------------------------------+ | MD5('This is a hashed password') | +----------------------------------+ | e9d4c42db40abbb4724a0047f7e91e67 | +----------------------------------+ 1 row in set (0.03 sec)
瞭解雜湊密碼的長度。
mysql> SELECT CHARACTER_LENGTH(MD5('This is a hashed password')); +----------------------------------------------------+ | CHARACTER_LENGTH(MD5('This is a hashed password')) | +----------------------------------------------------+ | 32 | +----------------------------------------------------+ 1 row in set (0.04 sec)
SHA-1 示例
mysql> select SHA1('This is a hashed password');
以下是輸出。
+------------------------------------------+ | SHA1('This is a hashed password') | +------------------------------------------+ | 4e2e1a39dba84a0b5a91043bb0e4dbef23970837 | +------------------------------------------+ 1 row in set (0.00 sec)
我們可以藉助 character_length() 函式來了解長度。
mysql> SELECT CHARACTER_LENGTH(SHA1('This is a hashed password'));
以下是輸出。
+-----------------------------------------------------+ | CHARACTER_LENGTH(SHA1('This is a hashed password')) | +-----------------------------------------------------+ | 40 | +-----------------------------------------------------+ 1 row in set (0.00 sec)
廣告