MySQL 哈希密码字段要使用哪种数据类型?
哈希密码数据类型取决于我们使用的哈希算法。哈希算法不取决于输入大小,因为它生成相同长度的结果。它以一系列十六进制数字的形式给出结果,我们可以使用 UNHEX() 函数将十六进制数字减半。
有各种算法和数据类型可用于存储值。
- MD5 − 它可以使用 char(32) 或 BINARY(16) 数据类型。
-
SHA-1 − 它可以使用 char(40) 或 BINARY(20) 数据类型。
阅读更多:MySQL 教程
MD5 示例
以下是一个示例−
mysql> select MD5('This is a hashed password');
这是输出。
+----------------------------------+
| MD5('This is a hashed password') |
+----------------------------------+
| e9d4c42db40abbb4724a0047f7e91e67 |
+----------------------------------+
显示1行 (0.03秒)
要知道哈希密码的长度。
mysql> SELECT CHARACTER_LENGTH(MD5('This is a hashed password'));
+----------------------------------------------------+
| CHARACTER_LENGTH(MD5('This is a hashed password')) |
+----------------------------------------------------+
| 32 |
+----------------------------------------------------+
显示1行 (0.04秒)
SHA-1 示例
mysql> select SHA1('This is a hashed password');
以下是输出。
+------------------------------------------+
| SHA1('This is a hashed password') |
+------------------------------------------+
| 4e2e1a39dba84a0b5a91043bb0e4dbef23970837 |
+------------------------------------------+
显示1行 (0.00秒)
我们可以使用 character_length() 函数了解长度。
mysql> SELECT CHARACTER_LENGTH(SHA1('This is a hashed password'));
以下是输出。
+-----------------------------------------------------+
| CHARACTER_LENGTH(SHA1('This is a hashed password')) |
+-----------------------------------------------------+
| 40 |
+-----------------------------------------------------+
显示1行 (0.00秒)