使用php加密postgres中的数据

时间:2012-07-17 09:06:41

标签: php postgresql

我需要在我的postgres数据库中存储加密的数字。我想使用mcrypt和3DES功能,加密和解密工作正常,但我无法将其存储在数据库中。我的数据库字段为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ä"

1 个答案:

答案 0 :(得分:2)

使字段类型为BYTEA(用于存储二进制字符串),然后使用类似PDO prepare,bindValue,execute来插入值。

另外,你知道sql injection吗?您正在使用的编码模式是一个简单的解决方法。