Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Postgresql中哈希sha256的加密和解密_Database_Postgresql_Hash_Sha256 - Fatal编程技术网

Database Postgresql中哈希sha256的加密和解密

Database Postgresql中哈希sha256的加密和解密,database,postgresql,hash,sha256,Database,Postgresql,Hash,Sha256,我正在尝试使用sha256在postgresql中散列字符串,如下所示: select digest('This is a test','sha256') 这将返回以下哈希值: \xc7be1ed902fb8dd4d48997c6452f5d7e509fbcdbe2808b16bcf4edce4c07d14e 现在我想用这个散列值检索我的初始字符串,但在postgres文档中找不到任何与之相关的内容,任何与之相关的帮助都将非常有用。散列和加密之间有区别: 可以对加密值进行描述以恢复原始值,因此

我正在尝试使用sha256在postgresql中散列字符串,如下所示:

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