binary password in SQL??

T

timasmith

Hi,

I used this function to convert the password to a hashe value

public static byte[] getKeyedDigest(byte[] buffer, byte[] key)
throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(buffer);
return md5.digest(key);
}


But the output was completely invalid to use for SQL to save in a field

?ª4úø...¦ÁœIÃÑäjÈ

Without doing a binary save - how can I easily convert the output to
regular ascii?

thanks

Tim
 
R

Roland de Ruiter

Hi,

I used this function to convert the password to a hashe value

public static byte[] getKeyedDigest(byte[] buffer, byte[] key)
throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(buffer);
return md5.digest(key);
}


But the output was completely invalid to use for SQL to save in a field

?ª4úø...¦ÁœIÃÑäjÈ

Without doing a binary save - how can I easily convert the output to
regular ascii?

thanks

Tim
Convert the byte array (IIRC 16 bytes for MD5) to a hexadecimal String
representation (2 characters for each byte: 32 in total for MD5)

byte[] md5sum = getKeyedDigest(yourBuffer, yourKey);
StringBuffer buf = new StringBuffer(2 * md5sum.length);
for (int i = 0; i < md5sum.length; i++ {
// convert signed byte to its "unsigned" integer value
int byte_i = md5sum & 0x000000ff;
// convert i'th byte to hexadecimal string repr
String hex = Integer.toHexString(byte_i);
// add leading 0 if i'th byte was less than 16.
if (hex.length() == 1) {
buf.append('0'); // add leading 0
} /* else {
// otherwise hex repr of the i'th byte consists of 2 chars
assert hex.length() == 2
} */
buf.append(hex);
}
String md5sumRepr = buf.toString();
return md5sumRepr;
 
A

Aki Tuomi

(e-mail address removed) kirjoitti:
Hi,

I used this function to convert the password to a hashe value

public static byte[] getKeyedDigest(byte[] buffer, byte[] key)
throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(buffer);
return md5.digest(key);
}


But the output was completely invalid to use for SQL to save in a field

?ª4úø...¦ÁœIÃÑäjÈ

Without doing a binary save - how can I easily convert the output to
regular ascii?

thanks

Tim

There is no reason why you coulnd't save binary data in SQL database.
Unless of course you are using some DBM or database that does not
support binary data at all. There is a reason for VARBINARY and BLOB
data types. =)

Aki
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,735
Latest member
HikmatRamazanov

Latest Threads

Top