我将在密码+ salt上运行SHA256
,但我不知道在设置MySQL数据库时需要多长时间才能生成VARCHAR
。什么是好长度?
答案 0 :(得分:292)
sha256的长度为256位 - 正如其名称所示。
如果使用十六进制表示,则每个数字代码为4位;因此,您需要64位数来表示256位 - 因此,您需要varchar(64)
或char(64)
,因为长度始终相同,完全没有变化。
演示:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
会给你:
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
即。一个64个字符的字符串。
答案 1 :(得分:53)
SHA256的256位编码选项:
CHAR(44)
,包括填充字符CHAR(64)
BINARY(32)
答案 2 :(得分:24)
我更喜欢使用BINARY(32),因为它是优化的方式!
您可以放置(00到FF)的32位十六进制数字。
因此BINARY(32)!
答案 3 :(得分:20)
为什么要让它变成VARCHAR?它没有变化。它总是64个字符,可以通过在one of the online SHA-256 calculators中运行任何内容来确定。
答案 4 :(得分:6)
它将固定为64个字符,因此请使用char(64)