加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – MessageDigest.getInstance(算法)总是抛出NoSuchAlgorit

发布时间:2020-12-15 02:14:39 所属栏目:Java 来源:网络整理
导读:我正在创建一个简单的密码保险库/生成器,现在我正在处理我的代码的保险库部分,并且正在编写用于加密密码的代码.我正在使用MessageDigest. 但是,当我尝试选择算法时,它总是抛出NoSuchAlgorithmException.我正在尝试使用SHA-1或SHA-256.我到处寻找,我找不到解
我正在创建一个简单的密码保险库/生成器,现在我正在处理我的代码的保险库部分,并且正在编写用于加密密码的代码.我正在使用MessageDigest.

但是,当我尝试选择算法时,它总是抛出NoSuchAlgorithmException.我正在尝试使用SHA-1或SHA-256.我到处寻找,我找不到解决方案.编辑:我忘了提到我试过“SHA-1”,“SHA-256”和“MD5”.没有工作.

我的方法:

private static String generateHash(String input) throws NoSuchAlgorithmException {
    MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
    messageDigest.update(input.getBytes());
    String encryptedString = new String(messageDigest.digest());
    System.out.println("encryptedString :: " + encryptedString);
    return encryptedString;
}

(我只打印出encryptedString用于调试目的)

我正在使用JDK 1.8.0_91和IntelliJ IDEA 1.5.0.2.

编辑:所以我弄清楚出了什么问题.而不是使用抛出NoSuchAlgorithmException,我需要将我的代码放入一个捕获NoSuchAlgorithmException的try / catch块.我不知道为什么,但它解决了我的问题.

解决方法

根据Oracle关于MessageDigest类的文档:

Every implementation of the Java platform is required to support the following standard MessageDigest algorithms:

MD5,SHA-1,SHA-256

Oracle的JVM支持MD2,MD5,SHA-256,SHA-384和SHA-512

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读