Google BigQury SHA512 函数输出与 OpenSSL 的区别

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

哈希不是意见,为什么 Google BigQuery sha512 函数输出与 OpenSSL 不一致?

Google BigQuery 输出 选择 SHA512(“你好世界”);

LHT9F+2v2A6ER7DUZ0HuJDt+t03SFJoKsbkkb7MDgvJ+hT2FhXGeDmfL2g2qj1FnEGRhXWRa4nrLFb+xRH9Fmw==

MariaDB 输出 SELECT SHA2("Hello World", 512);echo -n "Hello World" | 的 OpenSSL 输出sha512sum 均产生:

2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b

即使是 Base64 的输出也与 BigQuery 的有很大不同: 选择 TO_BASE64(SHA2("Hello World", 512));

MmM3NGZkMTdlZGFmZDgwZTg0NDdiMGQ0Njc0MWVlMjQzYjdlYjc0ZGQyMTQ5YTBhYjFiOTI0NmZi MzAzODJmMjdlODUzZDg1ODU3MTllMGU2N2NiZGEwZGFhOGY1MTY3MTA2NDYxNWQ2NDVhZTI3YWNi MTViZmIxNDQ3ZjQ1OWI=

google-bigquery hash openssl mariadb sha512
1个回答
0
投票

您的 Google BigQuery 输出是 Base64 编码的二进制哈希,而不是 Base64 编码的十六进制哈希。一个简单的 PHP 脚本显示了 BigQuery 的来源。

  $string = "Hello World";
  $hashstring = hash("sha512", $string, false);
  echo $hashstring."\n";
  echo base64_encode(hex2bin($hashstring))."\n";
© www.soinside.com 2019 - 2024. All rights reserved.