[pgsql-jp: 35872] PostgreSQLでの暗号化/復号化について

A.HASEGAWA blu-cielo @ nifty.com
2005年 8月 22日 (月) 14:31:22 JST


長谷川と申します。
初めて投稿させていただきます。

今回、PHP+PostgreSQLにてWebアプリケーションを開発しているのですが、
顧客から「DB上の個人情報を暗号化して欲しい。」との要求があり、
試行錯誤しております。

# 環境
# OS:Red Hat Linux9(開発はWinXP SP2)
# Server:Apache 1.3.33
# PostgresSQL:8.0.3(EUC-JP)

顧客要求として、
1.DB上の個人情報を暗号化して、管理ツール等で閲覧した際に、
内容を視覚的に判別できなくして欲しい。
2.個人情報(暗号化)に対して、LIKE検索(当然、完全一致も)を行い
データを取得したい。
3.個人情報(暗号化)に対して、更新処理を行いたい。

という要求があり、それ実現する為に、
個人情報を保存してあるテーブルのレコードを復号化して表示するVIEWを作成し、
検索の際にはこのテーブルを参照しようと考えました。

そこでいろいろと調べた結果、contrib/pgcryptoに行き着き、
VIEWで表示する際に、以下の関数を使用しようとしたのですが、

# README抜粋
# encrypt(data::bytea, key::bytea, type::text)::bytea
# decrypt(data::bytea, key::bytea, type::text)::bytea

どのように暗号化対象文字列や数値をbytea型に変換して、
更に復号化する際に、どのように
bytea型を平文に戻せばいいのかがわかりません。
もしかして、根本的に考え方が間違っているのでしょうか?
どなたかご存知の方がいらっしゃいましたら、
何卒、ご教授願います。




pgsql-jp メーリングリストの案内