I am using java message digest to create an MD5 hash that is used for authentication. The MD5 hash is stored in the database as varchar2. I did a test to create a user on my tomcat server on my local laptop. When I launched the war on the tomcat test server on linux redhat, authentication failed due to the lack of a hash. I checked the username and password: they are all correct. Both web servers point to the same database.
I suspect that the hash created on my local laptop is different from the hash created by the test server. I'm right?
Below is the code with which I created the hash.
public static String getMD5Hash(String str) throws Exception { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(str.getBytes()); return new String(md.digest()); }
The returned row will be stored in the database table, which is defined below
create table authen( passport varchar2(50), constraint pk_au primary key (passport) USING INDEX TABLESPACE xxxxxxx );
Here is the java version output on my laptop
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)
Here is the Java version on redhat server
[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)
java md5
sse
source share