gpt4 book ai didi

java - 签署 REST API 调用 : comon MAC algorithm for Java, php、Ruby

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

我想使用消息身份验证代码 (MAC) 来签署对 REST API 的调用,该算法在 Java、php、Ruby 和 C# 中使用起来轻松舒适?

较长的故事:我的应用程序(Play Framework 2.0)提供了一个非常简单的 REST API,只有几个服务可供有限且已知*的客户端组访问。安全性在这里很重要,客户的易用性也很重要。

(* 已知意味着他们必须首先在应用程序中注册,这是他们获得 MAC secret 的地方,我不知道他们是谁以及他们使用什么技术。)

我想实现以下方法:

  • 使用 SSL
  • 使用 MAC 签署 REST 消息

我实现了一个测试用例,其中使用密码加密器( Similar to the example code here )和 PBKDF2WithHmacSHA1 进行签名。我花了一些时间才让签名正常工作,特别是因为我想将签名作为 URL 参数发送,并且必须对其进行两次编码才能获得正确的格式。

生成的签名是一个 byte[],我使用 org.apache.commons.codec.binary.StringUtils 将其转换为 UTF-8 编码的字符串,然后使用 java.net.URLEncoder 再次对其进行编码以获得正确的 URL 参数。该解决方案有效,但感觉有点愚蠢且过于复杂。

这段经历让我想到了这个问题,我想让我的客户能够轻松舒适地使用该服务,而且非常安全。那么,我应该选择什么加密算法作为我的签名呢?对于 Java、php、Ruby、C# 等最常见的 Web 平台来说,很容易实现,并且至少可以在不太常见的语言中使用。

最佳答案

byte[] 转换为十六进制字符串可能是用于签名的最简单的格式 - 十六进制字符 [0-9a-f] 不需要特殊编码。 Apache Commons 编解码器在 Hex 类下提供了转换方法。

HMAC-SHA256 是 HMAC 算法的黄金标准,应该存在于任何值得使用的平台上。

关于java - 签署 REST API 调用 : comon MAC algorithm for Java, php、Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14340660/

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