10

我们目前正在设计一个 web api,并且正在实施授权。我们已经(大部分)关注了亚马逊的实施,但有一部分我真的不完全理解。

也就是说,base64 编码生成的 hmac 有什么意义?长度的差异可以忽略不计,至少对于大多数站点而言。亚马逊可能会注意到差异。这是唯一的原因吗?它可能与ascii / unicode有关吗?

4

1 回答 1

18

哈希算法和 HMAC 不提供十六进制字符串输出,这是许多人倾向于相信的;它们都输出二进制数据。Base64 为您提供了一种将二进制数据轻松且可移植地表示为字符串的方法。

至于原因,可能只是为了方便并在其软件的许多不同部分之间使用标准编码。除了它是一种广泛使用的编码之外,它没有什么特别之处。

于 2012-04-20T11:47:34.927 回答