Unable to store SHA hash

From: "Jerry Reid" <jereid(at)hotmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Unable to store SHA hash
Date: 2001-05-02 16:29:32
Message-ID: F76EirT8Pzlh3xtimqR0000a0b5@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

I recently migrated an application from Oracle to Postgresql 7.1. The
migration was fairly painless with one exception:

User's passwords are hashed using SHA, then stored in the database. Ie.
// Get the hash of the password
MessageDigest md=null;
try {
md = MessageDigest.getInstance("sha");
}
catch (NoSuchAlgorithmException e) {
System.out.println("Error: sha encryption unavailable.");
}
String hashedPass = new
String(md.digest(request.getParameter("pass").getBytes()));

This string contains several characters that are outside the normal ASCII
range. The string could be stored and retrieved using Oracle and MySQL, but
in Postgres any unusual characters become '?'. This corrupts the hash and
prevents users from logging on.

So far, the following have been tried:
- Password stored using PreparedStatement setString() call. Retrieved using
ResultSet(). Verified hash corruption in the database.
- Password field datatype changed from varchar to bytea. Oddly enough,
PreparedStatement.setBytes() can not be used against this datatype. Resorted
to using .setString(). Hash was still corrupted at the database level.

Any insight into how to accomplish this task would be greatly appreciated.

Jerry
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Browse pgsql-jdbc by date

  From Date Subject
Next Message Ned Wolpert 2001-05-02 16:43:31 Returning oid or primary key
Previous Message Rolf Schillinger 2001-05-02 14:12:03 multiple resource sets