org.apache.commons.codec.digest.Md5Crypt.md5Crypt 函数。在 linux 下出现异常,但在 windows 下正常
org.apache.commons.codec.digest.Md5Crypt.md5Crypt function. exception occured under linux, but fine under windows
我们正在使用 commons-codec
加密密码,使用 org.apache.commons.codec.digest.Md5Crypt.md5Crypt
函数。
它在 Windows 环境下工作正常,但在 CentOS 上会抛出异常。
我们有 3 台 centOS 测试服务器:一台是 centOS7,一台是 centOS6.7,一台是 centOS7 minimal。
最奇怪的是,代码在 centOS7 服务器上运行,但在其他两个服务器上运行不正常。它们之间的唯一区别是 OS。相同的 tomcats,相同的 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
你检查过罐子了吗?和图书馆的存在?可能是出于某些不明确的安全/专利/出口原因将其删除?
或者,至少,有些事情发生了变化。这是一个不兼容的问题:看到:
java.lang.IllegalAccessError: tried to access method
或者您已经(加载)了这个 class,因为您有多个不兼容的实例。尝试在你的包中找到它(调用函数,或被调用)
但为什么不直接使用库呢?
import java.security.*;
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(_originebyte);
我们正在使用 commons-codec
加密密码,使用 org.apache.commons.codec.digest.Md5Crypt.md5Crypt
函数。
它在 Windows 环境下工作正常,但在 CentOS 上会抛出异常。
我们有 3 台 centOS 测试服务器:一台是 centOS7,一台是 centOS6.7,一台是 centOS7 minimal。 最奇怪的是,代码在 centOS7 服务器上运行,但在其他两个服务器上运行不正常。它们之间的唯一区别是 OS。相同的 tomcats,相同的 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
你检查过罐子了吗?和图书馆的存在?可能是出于某些不明确的安全/专利/出口原因将其删除?
或者,至少,有些事情发生了变化。这是一个不兼容的问题:看到: java.lang.IllegalAccessError: tried to access method
或者您已经(加载)了这个 class,因为您有多个不兼容的实例。尝试在你的包中找到它(调用函数,或被调用)
但为什么不直接使用库呢?
import java.security.*;
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] thedigest = md.digest(_originebyte);