我们正在使用函数commons- codec来加密密码org.apache.commons.codec.digest.Md5Crypt.md5Crypt。
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
你检查过罐子了吗?和图书馆的存在?也许出于某种晦涩的安全性/专利/出口原因将其删除了?
或至少有所改变。这是不兼容的问题:请参见: java.lang.IllegalAccessError:尝试访问方法
或者您已经(加载)了此类,因为您有多个不兼容的实例。尝试在您的程序包(调用程序函数或被调用程序)中找到它
但是为什么不直接使用该库呢?
import java.security.*; MessageDigest md = MessageDigest.getInstance("MD5"); byte[] thedigest = md.digest(_originebyte);