我在以下代码中有一个字符串$concate
。我按如下方式计算了字符串的字节数组:
for($i = 0; $i < strlen($concate); $i++){
$binary[] = ord($concate[$i]);
}
现在我想计算字节数组$binary
的SHA-256哈希值,但我不知道该怎么做。有人会建议吗?
我要做的是: -
计算字符串的二进制文件(使用utf-8编码)(例如 - “hello world”)。
计算步骤1结果的SHA-256。
计算步骤2的输出的十六进制。
答案 0 :(得分:6)
字符串本身是二进制格式。所以hash('sha256', $concate)
就足够了。如果希望输出为二进制,请将第三个参数设置为true。
$hash = hash('sha256', $concate, true); // or
$hash = hex2bin(hash('sha256', $concate)); // provides same output as above
它是二进制字符串而不是十六进制字符串。
请参阅this example以获取说明。
答案 1 :(得分:0)
您可以将二进制数据存储在PHP字符串中。无需将其转换为字节数组。我认为这就是你要找的东西。
echo hash('sha256', $concate);