|
293 | 293 | <listitem>
|
294 | 294 | <para>
|
295 | 295 | The frontend must now send a PasswordMessage containing the
|
296 |
| - password encrypted via MD5, using the 4-character salt |
297 |
| - specified in the AuthenticationMD5Password message. If |
298 |
| - this is the correct password, the server responds with an |
299 |
| - AuthenticationOk, otherwise it responds with an ErrorResponse. |
| 296 | + password (with username) encrypted via MD5, then encrypted |
| 297 | + again using the 4-byte random salt specified in the |
| 298 | + AuthenticationMD5Password message. If this is the correct |
| 299 | + password, the server responds with an AuthenticationOk, |
| 300 | + otherwise it responds with an ErrorResponse. The actual |
| 301 | + PasswordMessage can be computed in SQL as <literal>concat('md5', |
| 302 | + md5(concat(md5(concat(password, username)), random-salt)))</>. |
| 303 | + (Keep in mind the <function>md5()</> function returns its |
| 304 | + result as a hex string.) |
300 | 305 | </para>
|
301 | 306 | </listitem>
|
302 | 307 | </varlistentry>
|
|