我将在password + salt上运行SHA256,但我不知道在设置MySQL数据库时需要多长时间才能使我的VARCHAR。什么样的长度比较好?
SHA256
VARCHAR
为什么要改成VARCHAR?它没有变化。它总是64个字符,这可以通过在一个在线SHA-256计算器中运行任何东西来确定。
正如其名称所示,sha256的长度为256位。
由于sha256返回一个十六进制表示,4位足以编码每个字符(而不是像ASCII那样的8位),因此256位将表示64个十六进制字符,因此您需要varchar(64),甚至char(64),因为长度总是相同的,根本不会变化。
varchar(64)
char(64)
演示如下:
$hash = hash('sha256', 'hello, world!'); var_dump($hash);
会给你:
$ php temp.php string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
例如,一个64个字符的字符串。
它将是固定的64个字符,因此使用char(64)
我更喜欢使用二进制(32),因为它是优化的方式!
你可以在这32个十六进制数字(00到FF)。
因此二进制(32)!
SHA256的256位编码选项:
CHAR(44)
CHAR(64)
BINARY(32)