org.apache.commons.codec.digest.Md5Crypt.md5Crypt函数。 在linux下发生exception,但在windows下很好

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

它在Windows环境中工作正常,但在CentOS上,会抛出exception。

我们有3个centOS测试服务器:一个是centOS7,一个是centOS6.7,一个是centOS7最小。 最奇怪的是,代码在centOS7服务器上运行,但在其他两个服务器上运行。 它们之间的唯一区别是操作系统。 相同的tomcats,相同的jdks,相同的构建。

在linux下它还需要其他东西吗?

exception消息:

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

你检查过jar子吗? 和图书馆的存在? 也许它被删除了一些不明确的安全/专利/出口原因?

或者,至少,某些事情发生了变化。 这是一个不兼容的问题:看到: java.lang.IllegalAccessError:试图访问方法

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

但为什么不直接使用图书馆?

 import java.security.*; MessageDigest md = MessageDigest.getInstance("MD5"); byte[] thedigest = md.digest(_originebyte); 
Interesting Posts