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)
广告