Re: MD5 salt

Joe Conway <mail@joeconway.com>

From: Joe Conway <mail@joeconway.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: "M. Bastin" <marcbastin@mindspring.com>, pgsql-novice <pgsql-novice@postgresql.org>
Date: 2003-05-29T16:40:10Z
Lists: pgsql-novice
Tom Lane wrote:
> "M. Bastin" <marcbastin@mindspring.com> writes:
>>I'm using the one provided with my development tool.  Is there some 
>>way I could calculate a MD5 digest with a known good tool and compare 
>>it with my result?
> 
> Well, you could compute just MD5(Password + User) and compare that to
> what's stored in pg_shadow.  Another possibility is to add some
> debugging printouts to libpq and see what it computes (look at 
> pg_password_sendauth() in src/interfaces/libpq/fe-auth.c).
> 

You can find test vectors for MD5 here:
ftp://ftp.rfc-editor.org/in-notes/rfc1321.txt

See near the bottom, A.5 Test suite. For convenience, here is that section:

A.5 Test suite

    The MD5 test suite (driver option "-x") should print the following
    results:

MD5 test suite:
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =
d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("123456789012345678901234567890123456789012345678901234567890123456
78901234567890") = 57edf4a22be3c955ac49da2e2107b67a

Note that there is no '\n' in that last line-wrapped example. If you can 
produce hashes matching these, you should be OK.

Joe