gpt4 book ai didi

base64 - 为什么 SHA256 哈希值以 "= "结尾?

转载 作者:行者123 更新时间:2023-12-01 23:53:12 25 4
gpt4 key购买 nike

我创建了一个 Web 服务,它在成功验证后返回一个安全 token 。

但是,在调试时,我注意到 Web 服务返回的每个哈希值都以“=”结尾,例如:

"tINH0JxmryvB6pRkEii1iBYP7FRedDqIEs0Ppbw83oc="
"INv7q72C1HvIixY1qmt5tNASFBEc0PnXRSb780Y5aeI="
"QkM8Kog8TtCczysDmKu6ZOjwwYlcR2biiUzxkb3uBio="
"6eNuCU6RBkwKMmVV6Mhm0Q0ehJ8Qo5SqcGm3LIl62uQ="
"dAPKN8aHl5tgKpmx9vNoYvXfAdF+76G4S+L+ep+TzU="
"O5qQNLEjmmgCIB0TOsNOPCHiquq8ALbHHLcWvWhMuI="
"N9ERYp+i7yhEblAjaKaS3qf9uvMja0odC7ERYllHCI="
"wsBTpxyNLVLbJEbMttFdSfOwv6W9rXba4GGodVVxgo="
"sr+nF83THUjYcjzRVQbnDFUQVTkuZOZYe3D3bmF1D8="
"9EosvgyYOG5a136S54HVmmebwiBJJ8a3qGVWD878j5k="
"8ORZmAXZ4dlWeaMOsyxAFphwKh9SeimwBzf8eYqTis="
"gVepn2Up5rjVplJUvDHtgIeaBL+X6TPzm2j9O2JTDFI="

为什么会有这样的行为?

最佳答案

这是因为您看不到哈希的原始字节,而是看到 Base64 编码。

Base64 编码将 3 个字节的 block 转换为 4 个字符的 block 。如果字节数可以被 3 整除,则此方法效果很好。如果不是,则可以使用填充字符,以便结果字符数仍然可以被 4 整除。

所以:

(no of bytes)%3 = 0  => no padding needed
(no of bytes)%3 = 1 => pad with ==
(no of bytes)%3 = 2 => pad with =

SHA256 哈希值是 256 位,即 32 字节。因此,前 30 个字节将包含 40 个字符,后 2 个字节将包含 3 个字符,并且填充始终为 1 =

关于base64 - 为什么 SHA256 哈希值以 "= "结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30666648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com