我想使用 MessageDigest
获取 MD5 哈希值,但出现错误。
import java.security.MessageDigest;
public class dn {
public static void main(String[] args) {
MessageDigest md = MessageDigest.getInstance("MD5");
}
}
错误:
错误是指
NoSuchAlgorithmException - 如果指定算法的 MessageDigestSpi 实现无法从指定提供程序获得。
在这个站点上找到 http://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html 下的 getInstance
我已经重新安装了最新的 java jdk1.7.0_21 和不同版本的 eclipse,但错误仍然存在。其他一切都在 eclipse 上运行良好。
我不知道我还能做什么。
最佳答案
错误消息很明确:代码无法编译( Unresolved 编译问题),因为您没有处理 NoSuchAlgorithmException
可以抛出的已检查异常 MessageDigest.getInstance()
。
要么将此异常添加到 main 方法的 throws 子句,要么捕获它:
public static void main(String[] args) throws NoSuchAlgorithmException {
...
}
or
public static void main(String[] args) {
try {
...
}
catch (NoSuchAlgorithmException e) {
System.err.println("I'm sorry, but MD5 is not a valid message digest algorithm");
}
}
请注意,这是一个编译错误。尽管存在编译错误(在 Eclipse 的“问题” View 中可见),并且尽管 Eclipse 在启动程序之前警告过您,但您还是选择了启动程序。所以你尝试执行不能编译的代码,这是你不应该做的。
编辑:
修复了 NoSuchAlgorithmException 中代码中的错字