import java.security.*;
MessageDigest md = MessageDigest.getInstance("MD5");
因NoSuchAlgorithm
例外而失败。
MessageDigest docs](http://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html)说:
需要Java平台的每个实现来支持以下标准MessageDigest算法: MD5 SHA-1 SHA-256 这些算法在Java Cryptography Architecture标准算法名称文档的MessageDigest部分中描述。 请参阅实现的发布文档,以了解是否支持任何其他算法。
那怎么会抛出异常?
幸运的是
import org.apache.commons.codec.digest.DigestUtils;
System.out.println( "md5 = "+DigestUtils.md5Hex( string ) );
效果很好,而且很优雅,但看起来仍然是一个非常基本的失败。 我错过了什么?
答案 0 :(得分:-2)
我刚刚检查过DigestUtils类,有一个针对NoSuchAlgorithmException的try-catch句柄。
您可以登入here。
您缺少throws声明或try-catch块来处理异常。该错误应该是编译错误。 If it's not a compilation error check the "MD5" string typo.
编译错误时,尝试使用try-catch块来编写代码。
try {
MessageDigest md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
或者添加你的方法抛出声明。
public static void main(String[] args) throws NoSuchAlgorithmException {