一尘不染

org.apache.commons.codec.digest.Md5Crypt.md5Crypt函数。在Linux下发生异常,但在Windows下很好

java

我们正在使用函数commons- codec来加密密码org.apache.commons.codec.digest.Md5Crypt.md5Crypt

它在Windows环境下可以正常工作,但在CentOS上会引发异常。

我们有3个centOS测试服务器:一台是centOS7,一台是centOS6.7,一台是centOS7
minimal。最奇怪的是,该代码可在centOS7服务器上运行,而不能在其他两个服务器上运行。它们之间的唯一区别是操作系统。相同的tomcat,相同的jdks,相同的内部版本。

在Linux下还需要其他东西吗?

异常消息:

java.lang.IllegalAccessError: tried to access method org.apache.commons.codec.digest.DigestUtils.getMd5Digest()Ljava/security/MessageDigest; from class org.apache.commons.codec.digest.Md5Crypt


阅读 278

收藏
2020-12-03

共1个答案

一尘不染

你检查过罐子了吗?和图书馆的存在?也许出于某种晦涩的安全性/专利/出口原因将其删除了?

或至少有所改变。这是不兼容的问题:请参见:
java.lang.IllegalAccessError:尝试访问方法

或者您已经(加载)了此类,因为您有多个不兼容的实例。尝试在您的程序包(调用程序函数或被调用程序)中找到它

但是为什么不直接使用该库呢?

import java.security.*;
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(_originebyte);
2020-12-03