Re: Algorithm for generating md5 encrypted password not found in documentation

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Derrick Rice <derrick(dot)rice(at)gmail(dot)com>
Cc: Fred Cox <sailorfred(at)yahoo(dot)com>, "pgsql-docs(at)postgresql(dot)org" <pgsql-docs(at)postgresql(dot)org>
Subject: Re: Algorithm for generating md5 encrypted password not found in documentation
Date: 2011-10-27 20:54:20
Message-ID: 201110272054.p9RKsKs18362@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

Derrick Rice wrote:
> On Thu, Oct 20, 2011 at 9:56 AM, Derrick Rice <derrick(dot)rice(at)gmail(dot)com> wrote:
> > If I recall correctly, it's the username and the password concatenated
> > and md5'd, then "md5" prepended.
> >
> > USER=...
> > PASS=...
> > MD5=`echo $USER$PASS | md5sum | cut -d' ' -f1`
> > echo "md5$MD5"
>
> Figures I send the email then discover a small mistake.
>
> It's password first. So change $USER$PASS to $PASS$USER

We did document this for 9.2:

http://developer.postgresql.org/pgdocs/postgres/protocol-flow.html#AEN92524

AuthenticationMD5Password

The frontend must now send a PasswordMessage containing the password
(with username) encrypted via MD5, then encrypted again using the 4-byte
random salt specified in the AuthenticationMD5Password message. If this
is the correct password, the server responds with an AuthenticationOk,
otherwise it responds with an ErrorResponse. The actual PasswordMessage
can be computed in SQL as concat('md5', md5(concat(md5(concat(password,
username)), random-salt))). (Keep in mind the md5() function returns its
result as a hex string.)

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Robert Haas 2011-10-28 21:59:28 Re: Link to PAM pages broken
Previous Message Alvaro Herrera 2011-10-24 15:28:29 Re: non-ASCII characters in SGML documentation (and elsewhere)