Received: from localhost (maia-5.hub.org [200.46.204.182]) by postgresql.org (Postfix) with ESMTP id D9D679FBE0A for ; Thu, 1 Mar 2007 09:42:58 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.182]) (amavisd-new, port 10024) with ESMTP id 23986-02 for ; Thu, 1 Mar 2007 09:42:27 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from interscan.indicator.com (mail.indicator.be [193.121.199.3]) by postgresql.org (Postfix) with ESMTP id 580189FBE13 for ; Thu, 1 Mar 2007 09:42:54 -0400 (AST) Received: from webaccess.indicator.be ([10.100.1.7]) by interscan.indicator.com with InterScan Message Security Suite; Thu, 01 Mar 2007 14:30:26 +0100 Received: from DOMEXT-MTA by webaccess.indicator.bewith Novell_GroupWise; Thu, 01 Mar 2007 14:42:51 +0100 Message-Id: <45E6E662.A3DD.0030.0@indicator.be> X-Mailer: Novell GroupWise Internet Agent 7.0.1 Date: Thu, 01 Mar 2007 14:42:43 +0100 From: "Bart Degryse" To: "John DeSoi" , "PostgreSQL" Subject: Re: How to store a password encripted in a user definedtable References: <675205.64473.qm@web55615.mail.re4.yahoo.com><95880380-1F04-44B5 -9353-BAB84955748E@pgedit.com> In-Reply-To: <95880380-1F04-44B5-9353-BAB84955748E@pgedit.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=__Part5074FE43.1__=" X-imss-version: 2.046 X-imss-result: Passed X-imss-approveListMatch: *@indicator.be X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.178 tagged_above=0 required=5 tests=AWL, BAYES_50, FORGED_RCVD_HELO, HTML_MESSAGE, UNPARSEABLE_RELAY X-Spam-Level: X-Archive-Number: 200703/8 X-Sequence-Number: 27646 --=__Part5074FE43.1__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Maybe a little example - create a table with two columns: username and password (eg. tbl_users) - in a secure environment (thus not over the internet) insert records into = the table INSERT INTO tbl_users(username, password) VALUES ('John', md5('johnspassw= ord')) - make a website with a login page (=3D a form with two fields: frm_usernam= e and frm_password) - let a javascript md5 function hash the password before sending the form = field values to the webserver that way the password doensn't go over the internet in an unprotected = way - let your webserver (eg with php) compare the received password (=3D = hashed) with the one in tbl_users select count(*) from tbl_users where username =3D [value from frm_usernam= e] and password =3D [value from frm_password] if the password is ok then count will be 1 - the user has been authenticated and can go on now you can start a session in your website, etc etc if count was 0 you should resent the login form with a notice "wrong = password" >>> John DeSoi 2007-03-01 14:25 >>> MD5 is built-in to PostgreSQL. It is what PostgreSQL itself uses to =20 hash passwords. For example: select md5('this is my password'); md5 ---------------------------------- 210d53992dff432ec1b1a9698af9da16 (1 row) On Mar 1, 2007, at 6:06 AM, Eugenio Flores wrote: > Thanks Andrej. But how can I use such algoritms in postgresql? arey =20 > they defined in a function that I can call? > > Or, do I have to code one of those algorithm to use it in my =20 > application? John DeSoi, Ph.D. http://pgedit.com/=20 Power Tools for PostgreSQL ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match --=__Part5074FE43.1__= Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Description: HTML
Maybe a little example
- create a table with two columns: username and password (eg. = tbl_users)
- in a secure environment (thus not over the internet) insert records = into the table
  INSERT INTO tbl_users(username, password) VALUES ('John', = md5('johnspassword'))
- make a website with a login page (=3D a form with two fields: = frm_username and frm_password)
- let a javascript md5 function hash the password before sending the = form field values to the webserver
  that way the password doensn't go over the internet in an = unprotected way
- let your webserver (eg with php) compare the received password (=3D = hashed) with the one in tbl_users
  select count(*) from tbl_users where username =3D [value from = frm_username] and password =3D [value from frm_password]
  if the password is ok then count will be 1
- the user has = been authenticated and can go on
  now you can start a session in your website, etc etc
  = if count was 0 you should resent the login form with a notice "wrong = password"

>>> John DeSoi <desoi@pgedit.com> = 2007-03-01 14:25 >>>
MD5 is built-in to PostgreSQL. It is what = PostgreSQL itself uses to 
hash passwords. For example:

sel= ect md5('this is my password');

      =           md5
-------------= ---------------------
210d53992dff432ec1b1a9698af9da16
(1 row)


On Mar 1, 2007, at 6:06 AM, Eugenio Flores wrote:

> = Thanks Andrej. But how can I use such algoritms in postgresql? arey  =
> they defined in a function that I can call?
>
> Or, = do I have to code one of those algorithm to use it in my 
> = application?



John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL


------= ---------------------(end of broadcast)---------------------------
TIP = 9: In versions below 8.0, the planner will ignore your desire to
 &= nbsp;     choose an index scan if your joining = column's datatypes do not
       = match
--=__Part5074FE43.1__=--