Database Postgresql中哈希sha256的加密和解密
我正在尝试使用sha256在postgresql中散列字符串,如下所示:Database Postgresql中哈希sha256的加密和解密,database,postgresql,hash,sha256,Database,Postgresql,Hash,Sha256,我正在尝试使用sha256在postgresql中散列字符串,如下所示: select digest('This is a test','sha256') 这将返回以下哈希值: \xc7be1ed902fb8dd4d48997c6452f5d7e509fbcdbe2808b16bcf4edce4c07d14e 现在我想用这个散列值检索我的初始字符串,但在postgres文档中找不到任何与之相关的内容,任何与之相关的帮助都将非常有用。散列和加密之间有区别: 可以对加密值进行描述以恢复原始值,因此
select digest('This is a test','sha256')代码>
这将返回以下哈希值:
\xc7be1ed902fb8dd4d48997c6452f5d7e509fbcdbe2808b16bcf4edce4c07d14e
现在我想用这个散列值检索我的初始字符串,但在postgres文档中找不到任何与之相关的内容,任何与之相关的帮助都将非常有用。散列和加密之间有区别:
- 可以对加密值进行描述以恢复原始值,因此加密是无丢失的,两个不同的明文值将始终导致不同的加密值
- 散列无法解密,因为信息丢失;不同的值可能会导致相同的散列,尽管希望这些“冲突”不会经常发生
哈希是不可逆的,而加密是可逆的
现在:
计算给定数据的二进制哈希值
因此,您将无法恢复原始字符串。我只需要知道它的可能性,到目前为止,我发现这是不可能的,我想要的是任何双向哈希或加密,可以将文本哈希/加密为较小的字符串,也可以转换回相同的文本,在PostgresSql中也是如此。如果您只是在寻找压缩,Postgres会在幕后对角色类型进行压缩,请参阅
digest(data text, type text) returns bytea
digest(data bytea, type text) returns bytea