SHA256哈希有多长?

时间:2010-02-10 22:59:16

标签: mysql sha256

我将在密码+ salt上运行SHA256,但我不知道在设置MySQL数据库时需要多长时间才能生成VARCHAR。什么是好长度?

5 个答案:

答案 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位编码选项:

  1. Base64:每个字符6位= CHAR(44),包括填充字符
  2. 十六进制:每个字符串4位= CHAR(64)
  3. 二进制:每字节8位= 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)