[pgsql-jp: 39381] Re: BYTEA型の値の検索方法

Imaoka Yumiko shinoi @ osk2.3web.ne.jp
2008年 5月 7日 (水) 10:40:03 JST


今岡です。

> psql から直接SQLを叩いてみた限りでは、特におかしな動作は見られませんでした。 
> 
> INSERT時とSELECT時で、暗号後の値が異なっているのかもしれません。
> PHPでのSQL送信前か、PostgreSQL で log_min_duration_statement などを使って、 
> 
> SQL をダンプして確認されてはいかがでしょうか。
>
> =# CREATE TABLE tbl (id serial, data bytea);
> =# INSERT INTO tbl(data) VALUES('ABC');
> =# INSERT INTO tbl(data) VALUES(E'\\001\\002');
> =# SELECT * FROM tbl WHERE data = 'ABC';
> id | data
> ----+------
>  1 | ABC
> (1 row)
>
> =# SELECT * FROM tbl WHERE data = E'\\001\\002';
> id |   data
> ----+----------
>  2 | \001\002
> (1 row)

サンプルをありがとうございます。
私も、暗号化の値がその度ごとに違うのではないかと
調査しているところです。
鍵を使っての暗号化なので、鍵と暗号化前の文字列が
同じなら常に同じ暗号化データが生成されるのだと思っていましたが…。

ちなみに、暗号化で使用しているのは下記です。
ccrypt-1.7-1.i386.rpm




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