我有一个必须加密的变量,之后通过mysqli prepared statement保存到数据库中。我使用AES-256-CTR。
$tabvar = openssl_encrypt($final, $encryptionMethod, $secret, OPENSSL_RAW_DATA, $iv);
加密后,结果如下所示:5œœ¼Ç=áüû;€é?
这是我的php插入代码:
$ins = mysqli_prepare($db, "INSERT INTO tab (tid, tabvar) VALUES (?,?)");
mysqli_stmt_bind_param($ins, "ss",$tid,$tabvar); mysqli_stmt_execute($ins);
因为$ tabvar在加密后由一些非常奇怪的字符组成,所以它不会插入到数据库中。如果我将$ tabvar更改为“i”,则插入行get,但tabvar列下的条目为0?
有没有人知道如何解决这个问题?