3

$concate在以下代码中有一个字符串。我计算了字符串的字节数组如下:

for($i = 0; $i < strlen($concate); $i++){
    $binary[] = ord($concate[$i]);
}

现在我想计算字节数组的 SHA-256 哈希$binary,但我不知道该怎么做。有人会建议吗?

我要做的是:-

  1. 计算字符串的二进制(使用 utf-8 编码)(例如 - “hello world”)。

  2. 计算第 1 步结果的 SHA-256。

  3. 计算步骤 2 的输出的十六进制。

4

2 回答 2

6

字符串本身是二进制格式。所以hash('sha256', $concate)就足够了。如果您希望输出为二进制,请将第三个参数设置为 true。

$hash = hash('sha256', $concate, true); // or
$hash = hex2bin(hash('sha256', $concate)); // provides same output as above

它将是二进制字符串而不是十六进制字符串。

有关说明,请参见此示例

于 2012-12-31T10:33:33.657 回答
0

您可以将二进制数据存储在 PHP 字符串中。无需将其转换为字节数组。我想这就是你要找的。

echo hash('sha256', $concate);
于 2012-12-31T10:33:41.177 回答