【问题标题】:Why base64 encode an API authorization key?为什么 base64 编码 API 授权密钥?
【发布时间】:2012-05-01 23:59:54
【问题描述】:

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

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

【问题讨论】:

    标签: security api amazon-web-services authorization


    【解决方案1】:

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

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

    【讨论】:

    • 您的回答暗示 API 密钥需要从客户端传递到通常运行 RESTful Web 服务的服务器,并且与这些服务的交互通常通过使用字符串的 HTTP 进行。因此,要通过 HTTP 将 API 密钥传递给此类服务,您需要以某种方式对其进行编码,而 base64 是用于此目的的流行选项。
    • +1 这是一个很好的例子,说明何时更适合使用 Base64。我不经常做 HTTP 的事情,所以谢谢你添加这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2020-08-17
    • 2018-03-20
    • 1970-01-01
    • 2017-07-16
    相关资源
    最近更新 更多