我正在使用Java消息摘要创建MD5哈希,用于身份验证。该MD5哈希作为varchar2存储在数据库中。我在我的本地笔记本电脑上的Tomcat服务器上进行了测试以创建用户。当我将war文件部署到Linux Redhat上的测试Tomcat服务器上时,由于哈希不匹配,身份验证失败。我检查了用户名和密码:它们都是正确的。两个Web服务器指向同一数据库。
我怀疑在我的本地笔记本电脑上生成的哈希与测试服务器生成的哈希不同。我这样认为是否正确?
以下是我用来生成哈希的代码。
这是我的笔记本电脑上的Java版本输出。
我怀疑在我的本地笔记本电脑上生成的哈希与测试服务器生成的哈希不同。我这样认为是否正确?
以下是我用来生成哈希的代码。
public static String getMD5Hash(String str) throws Exception
{
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
return new String(md.digest());
}
返回的字符串将被保存在以下定义的数据库表中
create table authen(
passport varchar2(50),
constraint pk_au primary key (passport) USING INDEX TABLESPACE xxxxxxx
);
这是我的笔记本电脑上的Java版本输出。
C:\Users\XXXX>java -version
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) Client VM (build 20.0-b11, mixed mode, sharing)
这是在 RedHat 服务器上的 Java 版本输出
[xxxxxx@xxxxxxxxx ~]$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)