可能重复:MySQL: what data type to use for hashed password field and what length?
要保存密码,我正在尝试在MySQL中使用SHA2()
。
但是在保存散列密码SHA2(CONCAT(pwd_salt, pwd), 512)
时,为什么这需要binary(128)
,而不是binary(64)
? (512位=> 64(= 512/8)字节)。
我猜MySQL可能会将散列数据保存为字符串,而不是二进制数据。
当我把
SELECT SHA2('some password with random salt', 512);
,它提供了128个单词,如
414c33de702e93bad92529973d651c7e4c5811ebe4a7f74775386245c0cfbc2b
3cf57260a833a4a6ad923bb9e13c9f8da768ad4d435b90b54f2c4c75ee3b22e4
我试过
SELECT CAST(SHA2('some password with random salt', 512) AS BINARY(64));
但这只是将数据截断为64个单词,如
414c33de702e93bad92529973d651c7e4c5811ebe4a7f74775386245c0cfbc2b
我做错了什么?