提问人:NEW2WEB 提问时间:4/3/2023 更新时间:4/3/2023 访问量:335
TEXT 列的 SHA1 HASH - 如何在 PostgreSQL 中执行
SHA1 HASH of TEXT column - how to do in PostgreSQL
问:
我需要一个查询,它将对 SHA1 的 TEXT 列进行编码。它不用于密码,而是用作简单的更改状态检查。我在 40chars 处截断,因为它是一个松散的支票。
此查询部分在 MS SQL SERVER 中工作:
RIGHT( CONVERT([varchar](45), HASHBYTES('SHA1', CAST(MY_XML as varchar(max))), 1) ,40) as HASH
客户需要它才能在 PostgreSQL 中工作。
我已经查看了 和其他函数,但我似乎无法获得正确的语法。ENCODE
DIGEST
这些不起作用:
DIGEST(CAST(MY_XML as varchar(max)),'SHA1')::varchar(40) as HASH
CAST(DIGEST(CAST(MY_XML as varchar),'SHA1') as varchar) as HASH
ENCODE(DIGEST(CAST(MY_XML as varchar(max)),'SHA1'),'hex') as HASH
ENCODE(DIGEST(MY_XML::text::bytea, 'sha1'), 'hex') as HASH
(最后一个来源于如何计算文本的真实SHA1?)
我觉得我很接近,但俗话说......
答: 暂无答案
评论
pgcrypto
select encode(digest('this is test', 'sha1'), 'hex'); b6794b2000d94d348203d0279c2e7322b922cb16
CREATE EXTENSION 'pgcrypto';