1
16進コード化されたパスワードを使用して暗号化されたテーブルにbyteaとして定義された列があります。Npgsqlはpgp_sym_decryptクエリを処理しません - コマンドラインから動作します
次のように私はパテからデータを読み出すことができます:私は、同じクエリを実行するためのNpgsqlを使用する場合
SELECT pgp_sym_decrypt(_encypted_text, E'\\x465af9b6f0ea0207188236e8698c76772f4fedcbc39fabf29c2c4d98b23d4e72') FROM msg;
pgp_sym_decrypt
------------------
This is the text
(1 row)
は、しかし、それは例外をスロー:私は使用しています
Npgsql.PostgresException: 39000: Wrong key or corrupt data
コードがあります
// create new connection
con = new NpgsqlConnection(m_ConnectString);
// setup certificate handler
con.UserCertificateValidationCallback = theUserCertificateValidationCallback;
// setup query string
strQuery = "SELECT pgp_sym_decrypt(_encypted_text, E'\\x465af9b6f0ea0207188236e8698c76772f4fedcbc39fabf29c2c4d98b23d4e72') FROM msg ";
// create a new comnmand using the query and connection
cmd = new NpgsqlCommand(strQuery, con);
// open the connection
con.Open();
// execute the query
reader = cmd.ExecuteReader();
最後の行が例外ハンドラをトリップします。
2つのインターフェイスが異なる動作をする理由はありますか? Npgsqlでどのように復号化できますか?