我要运行SHA256
上密码+盐,但我不知道多久才能让我的VARCHAR
设置MySQL数据库的时候。 什么是一个很好的长度是多少?
Answer 1:
一个SHA256为256位长 - 正如其名称所示。
如果使用的是一个十六进制表示,对4位的每个数字码; 因此需要64个数字来表示256位-因此,需要一个varchar(64)
或一个char(64)
作为长度始终是相同的,而不是改变在所有。
和演示:
$hash = hash('sha256', 'hello, world!');
var_dump($hash);
会给你 :
$ php temp.php
string(64) "68e656b251e67e8358bef8483ab0d51c6619f3e7a1a9f0e75838d41ff368f728"
即,具有64个字符的字符串。
Answer 2:
编码SHA256的256位选项:
- BASE64:每字符6位=
CHAR(44)
包括填充字符 - 十六进制:每焦炭= 4位
CHAR(64)
- 二进制:每字节8位=
BINARY(32)
Answer 3:
我更喜欢使用BINARY(32),因为它是最优化的方式!
您可以从(00至FF)有32个十六进制数字的地方。
因此BINARY(32)!
Answer 4:
为什么你会使其VARCHAR? 它不会改变。 它总是64个字符,这可以通过运行任何东西到确定网上SHA-256的计算器之一 。
Answer 5:
这将是固定64个字符,所以使用char(64)
文章来源: How long is the SHA256 hash?