每部Android手机都支持SHA-256吗()

相逢意气为君饮,系马高楼垂柳边。这篇文章主要讲述每部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吗()】所有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吗()

文章图片


    推荐阅读