我正在尝试使用Apache common.codec库在java中进行一些加密,这是一个示例代码片段:
String password = "abc124";
String salt = "$1$69$";
String cryptedPassword = org.apache.commons.codec.digest.Md5Crypt.md5Crypt(password.getBytes(), salt);
System.out.println(cryptedPassword);
我的.pom文件当前只包含此依赖项:
<dependencies>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
当我尝试执行该代码片段时,我获得了这个奇怪且不常见的错误:
线程“main”中的异常java.lang.IllegalAccessError:尝试过 访问方法 org.apache.commons.codec.digest.DigestUtils.getMd5Digest()Ljava /安全/消息摘要; 来自类org.apache.commons.codec.digest.Md5Crypt at org.apache.commons.codec.digest.Md5Crypt.md5Crypt(Md5Crypt.java:196) 在 org.apache.commons.codec.digest.Md5Crypt.md5Crypt(Md5Crypt.java:161) 在Tester.main
我尝试将库版本更新为1.10,但问题相同。我也试过升级java版本,目前是:
java -version java版“1.8.0_131”Java(TM)SE运行时环境 (build 1.8.0_131-b11)Java HotSpot(TM)64位服务器VM(构建 25.131-b11,混合模式)
javac的版本 javac 1.8.0_131
我的环境正在OSX上运行。