java – MessageDigest.getInstance(算法)总是抛出NoSuchAlgorit
我正在创建一个简单的密码保险库/生成器,现在我正在处理我的代码的保险库部分,并且正在编写用于加密密码的代码.我正在使用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类的文档:
Oracle的JVM支持MD2,MD5,SHA-256,SHA-384和SHA-512 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |