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)

更新於: 07-30-2019

6 千+ 次瀏覽

開啟你的 職業

完成課程獲得認證

開始
廣告