使用 SHA512 的哈希字符串的长度是多少?

Posted

技术标签:

【中文标题】使用 SHA512 的哈希字符串的长度是多少?【英文标题】:What is the length of a hashed string with SHA512? 【发布时间】:2013-08-16 15:55:48 【问题描述】:

用 sha512 散列的字符串的长度总是一样吗?

如果有,那是什么?

【问题讨论】:

crypto.stackexchange.com/q/2144/23595 这能回答你的问题吗? What data type to use for hashed password field and what length? 【参考方案1】:

顾名思义就是512位,也就是64字节。

但这就是散列,也许您想知道该散列在字符串中的特定表示,正如常用的那样,那么它取决于给定的表示。

如果你用十六进制写哈希,那么它将是 128 个字符。

如果你用 base64 写散列,那么它将是 86 个字节(或 88 个带填充)。

【讨论】:

这意味着 64 个字符长? 如果 php 哈希函数的 raw_output 为真,则输出的字符应该更少。 默认为十六进制 - 128 个字符 @DjOnce, @dystroy 这个问题已经有一段时间没有回答了。但我想我应该在这里添加一些东西。如果您尝试设计数据库表来存储哈希值。在 mysql 中运行它以获得长度:length(sha2('password',512));。这将为您提供 128 的长度。 虽然dystroys anwswer 是完全有效的,但请注意,在session.hash_bits_per_character 方面,哈希长度可能会根据php.ini 中每个字符集的位数而有所不同 - 请参阅:php.net/manual/en/… 和***.com/a/17032075/1510754

以上是关于使用 SHA512 的哈希字符串的长度是多少?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Swift中将字符串哈希到SHA512?

是否有可能获得相同的 SHA1 哈希? [复制]

MD5、sha1、sha256分别输出多少位?

hashlib

常用模块 - hashlib模块

SHA512 算法的哈希值是 128 位长吗?