我想将哈希生成迁移到具有SHA256
,但没有salt作为参数的BigQuery。
例如,在R
中,我可以执行以下操作:
library(openssl)
sha256("[email protected]", key = "111")
[1] "172f052058445afd9fe3afce05bfec573b5bb4c659bfd4cfc69a59d1597a0031"
我希望通过“迁移”,您的意思是迁移逻辑而不是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 |
+------------------------------------------------------------------+