gpt4 book ai didi

postgresql - Pgcrypto 命令产生非标准输出

转载 作者:行者123 更新时间:2023-11-29 12:02:34 24 4
gpt4 key购买 nike

每次我运行“加密”或“摘要”命令时,我的输出都包含字符“\”的多个实例。

参见示例“select encrypt('123456789012345','1234','aes');” - 预期输出:“\x34591627f9c8eae417fc7cbbf458592c”

而我的输出如下:"4Y\026'\371\310\352\344\027\374|\273\364XY,"

摘要命令也是如此;我是否错误地安装了 pgcrypto?

最佳答案

return type of encryptbytea,可以用different ways表示。你的两个不同的输出只是相同值的两种表示(注意“转义”格式中奇怪的转义):

test=# select (bytea E'4Y\\026''\\371\\310\\352\\344\\027\\374|\\273\\364XY,') =
test-# (bytea '\x34591627f9c8eae417fc7cbbf458592c') as eq;
eq
----
t
(1 row)

在我安装的 PostgreSQL 中,“hex”格式是默认格式,但由于这对您来说不是真的,您可以设置 bytea_output,它控制字节值的输出:

test=# select encrypt('123456789012345','1234','aes');
encrypt
---------------------------------------------
4Y\026'\371\310\352\344\027\374|\273\364XY,
(1 row)

test=# set bytea_output = 'hex';
SET
test=# select encrypt('123456789012345','1234','aes');
encrypt
------------------------------------
\x34591627f9c8eae417fc7cbbf458592c
(1 row)

您还可以显式编码字节以获得 text 值:

test=# select encode(encrypt('123456789012345','1234','aes'), 'hex');
encode
----------------------------------
34591627f9c8eae417fc7cbbf458592c
(1 row)

关于postgresql - Pgcrypto 命令产生非标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49119196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com