Re: MD5 in pg and php - Mailing list pgsql-php
From | Nick Barr |
---|---|
Subject | Re: MD5 in pg and php |
Date | |
Msg-id | 4090C1E0.6010309@chuckie.co.uk Whole thread Raw |
In response to | Re: MD5 in pg and php (Joolz <joolz@xs4all.nl>) |
List | pgsql-php |
Joolz wrote: >>[Marek Lewczuk schreef op 29-04-2004 09:31 +0100] >> >>Joolz wrote: >> >> >>>Hi, I'm completely new to hashing, so please bear with me. >>> >>>I want to store passwords in a pg db, MD5 seems like a good way to >>>enhance security (no more plaintext passwords over the line etc.) I >>>had a look at MD5, in PHP 4.3.4 there is a function md5() which seems >>>to work nicely: >>> >>> echo md5('apple'); >>> >>>returns ae6d32585ecc4d33cb8cd68a047d8434 every time. Apart from the >>>PHP frontend, I also want to be able to use the same algorithm in >>>native pg. I found that postgresql-contrib-7.3.4 has a function >>>crypt() which I expected to work the same. However: >>> >>> select crypt('apple', gen_salt('md5')); >>> >>>gives values different from the PHP md5() function, and moreover, >>>they're different each time. Can anyone please tell me what I should >>>do to get the same result in native pg as in PHP? >>> >>>Thanks! >>> >>> >>> >>I whould suggest to update PG to version 7.4, where there is built-in >>MD5 function. >> >> > >Thanks, I already found some fc1 rpm's (still in development). But can >anyone tell me if the 7.4 internal md5() function will do the same as >the PHP md5() function? Or do a quick select md5('apple') and let me >know if the result is 'ae6d32585ecc4d33cb8cd68a047d8434'? > >I really wouldn't like to upgrade from my current stable situation, >only to find out that it didn't solve my original problem. > >TIA! > > > OK, PHP --------------------------------------------------- <? echo md5('apple'); ?> --------------------------------------------------- produces --------------------------------------------------- 1f3870be274f6c49b3e31a0c6728957f --------------------------------------------------- and postgres: --------------------------------------------------- im_perf=# select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 7.4.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.3.2 20031022 (Red Hat Linux 3.3.2-1) (1 row) im_perf=# select md5('apple'); md5 ---------------------------------- 1f3870be274f6c49b3e31a0c6728957f (1 row) --------------------------------------------------- I have no idea why these two results dont agree with yours, but at least they agree with each other. It is probasbly different library versions. Nick