1

暗号化された番号をpostgresデータベースに保存する必要があります。3DES関数でmcryptを使用したかったのですが、暗号化と復号化は正常に機能していますが、データベースに保存できません。私のデータベースフィールドはchar(50)です。

$key = "this is a secret key";
$input = "123456789";

$test = mcrypt_ecb(MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
$db = pg_connect("host=localhost dbname=testdb user=haxo");
$sql = "insert into test (pin) values('".$test."')";
$result = pg_query($sql); 
if (!$result) {
    $errormessage = pg_last_error();
    echo "Error with query: " . $errormessage;
    exit();
} 
pg_close(); 

私が得ているエラーは次のとおりです。ERROR: unterminated quoted string at or near "'Ÿlä"

4

1 に答える 1

2

フィールドタイプをBYTEA(バイナリ文字列を格納するためのもの)にしてから、PDO prepare、bindValue、executeなどを使用して値を挿入します。

また、 SQLインジェクションについて知っていますか?使用しているコーディングパターンは、トラブルの簡単なレシピです。

于 2012-07-17T09:21:33.743 に答える