chkpass

PostgreSQL 9.0.0文書
前のページ | 巻戻し | 付録 F. 追加で提供されるモジュール | 早送り | 次のページ

# F.5. chkpass

本モジュールは暗号化したパスワードを格納するために設計された`chkpass`データ型を実装します。 各パスワードは入力時に自動的に暗号化形式に変換され、常に暗号化して格納されます。 比較する際は単に平文のパスワードと比較してください。 そうすると、比較関数が比較する前に平文を暗号化してくれます。

パスワードが簡単にクラックできると判断される場合にエラーを報告する対策がコードに含まれています。 しかし、現在は何も行わない単なるスタブです。

コロン付きの入力文字列を付けると、それはすでに暗号化済みのパスワードとみなされ、それ以上暗号化することなく格納されます。 これにより事前に暗号化されたパスワードを入力することができます。

出力時はコロンが先頭に付けられます。 これにより、暗号化を再度行うことなくパスワードのダンプと再ロードを行うことができます。 コロンがない暗号化パスワードが必要ならば、`raw()`関数を使用してください。 これにより、Apacheの`Auth_PostgreSQL`モジュールのような作業にこの型を使用することができます。

暗号化は標準Unix関数`crypt()`を使用します。 このため、その関数全ての制限の影響を受けます。とりわけ、パスワードの先頭8文字のみが考慮されます。

`chkpass`データ型のインデックス付けができないことに注意してください。

使用例を以下に示します。

    test=# create table test (p chkpass);
    CREATE TABLE
    test=# insert into test values ('hello');
    INSERT 0 1
    test=# select * from test;
           p
    ----------------
     :dVGkpXdOrE3ko
    (1 row)

    test=# select raw(p) from test;
          raw
    ---------------
     dVGkpXdOrE3ko
    (1 row)

    test=# select p = 'hello' from test;
     ?column?
    ----------
     t
    (1 row)

    test=# select p = 'goodbye' from test;
     ?column?
    ----------
     f
    (1 row)

## F.5.1. 作者

D'Arcy J.M. Cain (`<darcy@druid.net>`)

前のページ | ホーム | 次のページ
btree_gist | 上に戻る | citext