在 Postgresql 中加密和解密哈希 sha256
Encrypt And Decrypt Hash sha256 in Postgresql
我正在尝试使用 sha256 在 postgresql 中散列一个字符串,如下所示:
select digest('This is a test','sha256');
这个 returns 散列值以下:
\xc7be1ed902fb8dd4d48997c6452f5d7e509fbcdbe2808b16bcf4edce4c07d14e
现在我想使用这个散列值检索我的初始字符串,但无法在 postgres 文档中找到任何关于它的信息,任何关于它的帮助都将非常有用。
散列和加密有区别:
可以解密加密值以恢复原始值,因此加密是无损的,两个不同的明文值总是会产生不同的加密值
一个散列无法解密,因为信息丢失;不同的值可能会产生相同的散列值,尽管这些“冲突”最好不要经常发生
散列是不可逆的,而加密是可逆的。
现在digest
is a hashing function:
digest(data text, type text) returns bytea
digest(data bytea, type text) returns bytea
Computes a binary hash of the given <em>data</em>
.
因此您将无法恢复原始字符串。
您可以在 Postgresql 中使用 pgcrypto 扩展来保存加密后的数据。
插入,
INSERT INTO tablename (columnname1, columnname2) VALUES (PGP_SYM_ENCRYPT('value1', 'aes_key'), PGP_SYM_ENCRYPT('value2', 'aes_key'));
用于抓取,
SELECT PGP_SYM_DECRYPT(columnname1::bytea, 'aes_key') as columnname1, PGP_SYM_DECRYPT(columnname2::bytea, 'aes_key') as columnname2 from tablename;
我正在尝试使用 sha256 在 postgresql 中散列一个字符串,如下所示:
select digest('This is a test','sha256');
这个 returns 散列值以下:
\xc7be1ed902fb8dd4d48997c6452f5d7e509fbcdbe2808b16bcf4edce4c07d14e
现在我想使用这个散列值检索我的初始字符串,但无法在 postgres 文档中找到任何关于它的信息,任何关于它的帮助都将非常有用。
散列和加密有区别:
可以解密加密值以恢复原始值,因此加密是无损的,两个不同的明文值总是会产生不同的加密值
一个散列无法解密,因为信息丢失;不同的值可能会产生相同的散列值,尽管这些“冲突”最好不要经常发生
散列是不可逆的,而加密是可逆的。
现在digest
is a hashing function:
digest(data text, type text) returns bytea digest(data bytea, type text) returns bytea
Computes a binary hash of the given
<em>data</em>
.
因此您将无法恢复原始字符串。
您可以在 Postgresql 中使用 pgcrypto 扩展来保存加密后的数据。
插入,
INSERT INTO tablename (columnname1, columnname2) VALUES (PGP_SYM_ENCRYPT('value1', 'aes_key'), PGP_SYM_ENCRYPT('value2', 'aes_key'));
用于抓取,
SELECT PGP_SYM_DECRYPT(columnname1::bytea, 'aes_key') as columnname1, PGP_SYM_DECRYPT(columnname2::bytea, 'aes_key') as columnname2 from tablename;