gpt4 book ai didi

amazon-web-services - 为什么 base64 是 sha1/sha256 哈希?

转载 作者:行者123 更新时间:2023-12-04 04:57:44 25 4
gpt4 key购买 nike

有人能告诉我为什么亚马逊想要 hmac-sha1/sha256 哈希的 base64 吗?

http://docs.amazonwebservices.com/AmazonSimpleDB/latest/DeveloperGuide/HMACAuth.html

我知道 base64 是在 ascii 中表示二进制日期,但 sha1/sha256 已经是 ascii——我的意思是它唯一的十六进制。

谢谢

蒂莫

最佳答案

这些散列不是 ASCII——您看到十六进制数字的原因是因为您用来生成它们的软件将摘要的二进制输出转换为十六进制数字的 ASCII 字符串。

例如,MD5 摘要将填充一个 16 字节的数组。您也可以将其表示为 32 个字符的字符串,但摘要的最基本形式仍然是字节数组。

将字节数组更改为十六进制字符串时,需要 8 位(一个完整字符)来表示每 4 位数据。虽然不经常这样称呼,但您可以说它使用“base16”编码,因为您一次抓取 4 位并将它们映射到 16 个字符的字母表。

另一方面,Base64 一次抓取 6 位并将它们映射到 64 个字符的字母表。这意味着您需要 8 位(同样是一个完整的字符)来表示每 6 位数据,其中浪费的位是 base16 的一半。 base16 编码的字符串总是比原始字符串大两倍; base64 编码的字符串只有其四分之三。对于 SHA256 哈希,base16 执行 64 个字节,但 base64 执行大约 43 个字节。

关于amazon-web-services - 为什么 base64 是 sha1/sha256 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660079/

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