スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PostgreSQLでパスワードをハッシュで保存

データベースにパスワードを保存する時はハッシュ化するのは当然ですが、md5とかだと脆弱だし同じパスワードが同じ値になってしまいます。
PostgreSQLのpgcryptoでは安全なハッシュを提供しています。
pgcryptoはPostgreSQL9.1以降は

CREATE EXTENSION pgcrypto;

でインストールできます。
テーブルは以下の通り。

CREATE TABLE t_user (
user_id TEXT NOT NULL,
password TEXT NOT NULL,
PRIMARY KEY(user_id)
)

ユーザIDを「aoyagi」パスワードを「abc」とします。
登録は以下の通り。

INSERT INTO t_user (
user_id
,password
) VALUES (
'aoyagi'
,crypt('abc', gen_salt('bf'))
);

パスワードの確認は以下の通りです。

SELECT
user_id
FROM
t_user
WHERE
user_id = 'aoyagi'
AND password = crypt('abc', password)
;
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。