SHA256是否具有良好的跨平台支持?

时间:2013-11-18 21:21:31

标签: java android ios encryption sha256

我正在设计一个新的REST API,我正在考虑要求消息签名。在高层次上,模型是这样的:

  1. API使用者获得API密钥和秘密
  2. API使用者使用Secret创建消息摘要HMAC,将其发送到API中。
  3. 我一直在考虑使用SHA256进行签名,但我想确保它可以使用:

    1. 的Android /爪哇
    2. 的iOS
    3. 所有其他主要平台等
    4. 我意识到SHA-1有很好的支持,但如果可能的话,我真的需要使用更强大的东西。

2 个答案:

答案 0 :(得分:3)

iOS中的CommonCrypto支持SHA256。 Java也通过MessageDigest.getInstance("SHA-256"),Android以及Java(Java)支持它。不要忘记Windows Phone也支持它。这在我看来非常重要。

正如您已经指出的那样,您不应该使用SHA1,因为它不是secure enough anymore

答案 1 :(得分:-1)

较旧的Android版本不支持SHA-256withRSA(在Android 4.0.3,4.1.1中验证相同)。我在使用JSCEP时遇到过这个问题。 SCEP服务器返回的摘要算法为SHA-256。但是在这些Android版本的任何默认SecurityProviders中都没有SHA-256withRSA。找到相关链接: Which versions of Android support which package signing algorithms?

此链接显示稍后添加了SHA-256withRSA: https://android-review.googlesource.com/44360