digest(data text, type text) returns bytea
digest(data bytea, type text) returns bytea
计算给定data的二进制哈希值。type是要使用的算法。标准算法是md5、sha1、sha224、sha256、sha384和sha512。
如果想摘要成为一个十六进制字符串,可以在结果上使用encode()。例如:
CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$ SELECT encode(digest($1, 'sha1'), 'hex') $$ LANGUAGE SQL STRICT IMMUTABLE;
hmac(data text, key text, type text) returns bytea
hmac(data bytea, key text, type text) returns bytea
为带有密钥key的data计算哈希算法计算过的MAC。type与digest()中相同。
这与digest()相似,但是该哈希只能在知道密钥的情况下被重新计算出来。这阻止了非法用户修改数据且更改哈希以匹配。
如果该密钥大于哈希块的尺寸,它将先被哈希然后把结果用作密钥。