我正在设计一个新的REST API,我正在考虑要求消息签名。在高层次上,模型是这样的:
我一直在考虑使用SHA256进行签名,但我想确保它可以使用:
我意识到SHA-1有很好的支持,但如果可能的话,我真的需要使用更强大的东西。
答案 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