是否每个Android手机支持SHA-256(Does every Android phone su

2019-06-23 13:47发布

所以,阅读这篇文章: 我如何计算在Android中字符串的SHA-256散列?

和文档: http://developer.android.com/reference/java/security/MessageDigest.html

我很好奇; 该手机将支持SHA-256? 在文档,关于“抛出:NoSuchAlgorithmException”行让我觉得有些手机不支持所有的算法。 我去实现这一个应用程序,并期望它去努力,我想知道,如果有人知道这事,所有的手机都在同一之前...?

我觉得奇怪,MessageDigest类不具备的一些常量来接你要使用的算法。

Answer 1:

所有的Android设备支持SHA-256。 该NoSuchAlgorithmException表明请求的算法无法找到,是必要的,因为该方法需要一个String的算法名称的说法。 如果您在“富-256”获得通过,该方法的唯一的办法就是抛出NoSuchAlgorithmException因为,我无法理解的原因,没有算法,称为“富-256”。 假设你传递你确定一个名称是Android的可以使用的算法,你永远不会看到这个异常。



Answer 2:

添加抛出: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);
}


Answer 3:

SHA-256withRSA在较旧的Android版本不支持(验证了安卓4.0.3,4.1.1相同)。 我曾经历过这个问题,而使用JSCEP。 通过SCEP服务器返回的摘要算法SHA-256。 但是,SHA-256withRSA没有出现在这些版本的Android任何默认SecurityProviders。 发现相关链接: Android的支持,这包签名算法哪个版本?

此链接显示,SHA-256withRSA后来补充说: https://android-review.googlesource.com/44360



Answer 4:

根据Android的文件以了解消息摘要 ,SHA-256,因为API支持1。



文章来源: Does every Android phone support SHA-256