1. ホーム
  2. database

PostgreSQLのパスワードのデータ型は何ですか?

2023-09-25 06:04:20

質問

I 読む は、暗号化を行うデータ型があり、パスワードはデータベースで保護されると書いてありました。

私が今使っているのは varchar を使用してパスワードを保存しています。パスワードにSHA-512関数を適用して、そのデータをどこかに置いて、平文のパスワードを取り除いたらどうだろうという考えがあります。

しかし、Perlのデータ型は、PostgreSQLではvarcharより良い方法があることを示唆しています。

PostgreSQLにおけるパスワードのデータ型は何ですか?

どのように解決するのですか?

Jeff は、次のようなタイトルの良い記事を書いています。 パスワードの保存方法が間違っている可能性があります。 . この記事では、データベースにパスワードを保存するさまざまな方法と、よくある落とし穴について論じています。特に、ハッシュ アルゴリズム、レインボー テーブル、およびパスワード ファイルが漏洩するリスクを低減するためのソルトの使用について説明します。

の使用は varchar データ型の使用は、適切にハッシュ化されたパスワードを保存するために完全に適しています。たとえば、以下は本番用データベースからの私の実際のアカウント レコードの一部です。

=> select account_id, email, salt, passhash from account where email = '[email protected]';
 アカウントID|メールアドレス|ソルト|パスハッシュ                 
------------+------------------+------------------+------------------------------------------
          1|[email protected]|GFR9uT4N4Tzl3vnK|2c2bf00079a6d49a8f7fb17cefb52fdb41a4b043|2c2bf00079a6d49a8f7fb17cefb52fdb41a4b043
(1行)

この場合 passhash は、私のパスワードと結合したソルトのSHA-1を16進数で表したものです。