如何用盐创建sha256哈希

问题描述 投票:1回答:1

我想将哈希生成迁移到具有SHA256,但没有salt作为参数的BigQuery。

例如,在R中,我可以执行以下操作:

library(openssl)
sha256("[email protected]", key = "111")
[1] "172f052058445afd9fe3afce05bfec573b5bb4c659bfd4cfc69a59d1597a0031"
hash google-bigquery salt
1个回答
1
投票

我希望通过“迁移”,您的意思是迁移逻辑而不是R Sha256()函数的确切字节输出。

R正在使用hmacsha256并查看Microsoft's HMACSHA256 class,它可以大致表示为:

HMAC进程将密钥与消息数据混合,使用哈希函数对结果进行哈希处理,再将哈希值与密钥进行混合,然后再次应用哈希函数。输出哈希的长度为256位。

create temp function hmacsha256(content STRING, key STRING)
AS (SHA256(
     CONCAT(
       TO_HEX(SHA256(CONCAT(content, key))), key)
       ));

SELECT TO_HEX(hmacsha256("[email protected]", "111"));

输出:

+------------------------------------------------------------------+
|                               f0_                                |
+------------------------------------------------------------------+
| 4010f74e5c69ddbe1e36975f7cb8be64bcfd1203dbc8e009b29d7a12a8bf5fef |
+------------------------------------------------------------------+
© www.soinside.com 2019 - 2024. All rights reserved.