我目前正在设计一个新的 REST API,我正在考虑要求消息签名。在高层次上,模型是这样的:
- API 消费者获得一个 API key 和 secret
- API 使用者使用 Secret 创建它发送到 API 的消息的消息摘要 HMAC。
我一直在考虑使用 SHA256 进行签名,但希望确保它适用于:
- 安卓/Java
- 苹果手机
- 所有其他主要平台等
我知道 SHA-1 有很好的支持,但如果可能的话,我真的需要使用更强大的东西。
最佳答案
iOS 中的 CommonCrypto
支持 SHA256。 Java 通过 MessageDigest.getInstance("SHA-256")
支持它,Android 也是如此 (Java)。不要忘记也支持 Windows Phone 的地方。在我看来,这非常重要。
正如您已经指出的那样,您不应该使用 SHA1,因为它不是 secure enough anymore .
关于java - SHA256 是否具有良好的跨平台支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058189/