0

我正在使用 php.ini 中的openssl_random_pseudo_bytes函数生成盐。但是,我无法将输出存储到 PostgreSQL 数据库中。

我收到一个错误:

错误:编码“UTF8”的字节序列无效

现在我意识到有问题的数据库的编码设置为UTF8,并且函数的输出不匹配,但是解决这个问题的正确方法是什么?

这是一种随机盐,我担心通过任何过程将其转换为 UTF8 将不再使其加密安全?

4

1 回答 1

1

openssl_random_pseudo_bytes函数输出二进制数据,我试图将输出存储在数据类型字符变化的数据库字段中,错误地将其视为字符串。

bytea是 PostgreSQL 数据库中字段的正确数据类型。

http://www.postgresql.org/docs/9.2/interactive/datatype-binary.html

更新:此外,您似乎需要pg_escape_bytea在输出上使用才能将二进制数据实际插入数据库。

感谢decezelechlukaszVolkerK在评论中提供答案。

于 2013-03-06T08:17:37.687 回答