【发布时间】:2021-02-25 17:06:48
【问题描述】:
我正在使用:x86_64-pc-linux-gnu 上的 PostgreSQL 11.6,由 gcc (GCC) 4.9.3 编译,在 AWS 上作为 Aurora (RDS) 运行的 64 位。
我已经设法让下面的工作
SELECT encode(digest('email@example.com', 'sha256'),'hex');
但我需要使用第 3 方提供的盐。假设为了争论,盐是“this_is_my_salt”。我该如何使用它?我只能找到使用算法生成盐的示例。
供应商希望我们使用他们的哈希值将他们数据库中的电子邮件地址与我们的进行比较。他们没有指定他们的数据库系统,但向我展示了他们的查询:
SELECT 'email@example.com' as unhashed_email, sha2('shared_salt_value' || lower('email@example.com')) as hashed_email
这对我使用以下答案之一在 postgres 中尝试示例产生不同的哈希:
SELECT encode(digest('email@example.com' || 'shared_salt_value', 'sha256'),'hex');
我的哈希以 db17e.... 开头 他们的哈希以 b6c84.... 开头。
可能是编码或其他导致差异的原因吗?
【问题讨论】:
标签: postgresql hash sha