每部Android手机都支持SHA-256吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每部Android手机都支持SHA-256吗?相关的知识,希望对你有一定的参考价值。
所以阅读这篇文章:How can I calculate the SHA-256 hash of a string in Android?
和文档:http://developer.android.com/reference/java/security/MessageDigest.html
我很好奇;哪些手机支持SHA-256?在文档中,关于'NoSuchAlgorithmException'的一行让我觉得有些手机不支持所有算法。在我为一个应用程序实现这个并期望它在所有手机上工作之前我想知道是否有人知道这个...?
我觉得奇怪的是MessageDigest类没有一些常量来选择你想要使用的算法。
所有android设备都支持SHA-256。 NoSuchAlgorithmException
表示无法找到所请求的算法,因为该方法对算法名称采用String
参数。如果你传入“foo-256”,该方法唯一的办法就是抛出一个NoSuchAlgorithmException
,因为出于我理解的原因,没有一种叫做“foo-256”的算法。假设您传递了一个名称,您确定它是Android可以使用的算法,您将永远不会看到该异常。
添加NoSuchAlgorithmException,如下所示:
public static String SHA256 (String text) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(text.getBytes());
byte[] digest = md.digest();
return Base64.encodeToString(digest, Base64.DEFAULT);
}
旧的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
根据MessageDigest的Android Documentations,自API 1起支持SHA-256。
以上是关于每部Android手机都支持SHA-256吗?的主要内容,如果未能解决你的问题,请参考以下文章
Android 签名 SHA1WithRSA SHA256WithRSA MD5WithRSA
Android 如何查看apk签名信息的MD5(SHA1和SHA256也可以)