石井です. # こういう質問はpgsql-jpに投げた方がよいと思いますが... > こんにちは、NIDA といいます。 > # Vine Linux 3.1 に、postgresql の 7.4.7 です。 > > postgresql から "select * from pg_shadow;" をしたところ、 > > ユーザーパスワードのところに、 > "md5621f4bf792982670d1c42988c1495a4b" とか > "md51f6d86901b4d1d4fbefdeb94e99f3447" と > 表示されました。 > > これらの元が 'password' であることを確認したいのですが、 > どうしたらいいのでしょうか。 > > # 設定したパスワードは、いずれも 'password' です。 > # プライベートパソコンで、勉強の為に設定しただけです。 > > > echo -n 'password' | md5sum をしたところ、 > "5f4dcc3b5aa765d61d8327deb882cf99" > と表示されました。 > > なんどやっても同じ値が出てきますが、 > ユーザーパスワードのものは、同じ文字列('password')でも > 異なったものになっています。 > # "md5621f4bf792982670d1c42988c1495a4b" と > # "md51f6d86901b4d1d4fbefdeb94e99f3447" 。 > > オリジナルが同じなら、md5 の値も同じだと思ったんですが > 違うのでしょうか。 > > それとも、"1f6d86901b4d1d4fbefdeb94e99f3447" は、 > md5 の値ではないのでしょうか。 単に,PostgreSQLが内部でやっている計算通りにしないから結果が一致しない だけでしょう. PostgreSQLでは,md5計算の元になるオリジナル文字列は生パスワードではな く,ユーザ名を連結したものになっています.たとえば,ユーザ名foo,パス ワードがbarなら,md5(barfoo)です. -- Tatsuo Ishii