0

我正在对各种数据执行哈希。在大多数数据上,得到哈希结果后,我可以对哈希进行 var_dump,它会打印:

> string(64) "<hash goes here>"

但是,对于我正在散列的数据之一,结果会打印散列,其前面没有“string(64)”,并且没有引号。

> <hash goes here>

这会是什么原因?这可能是由于数据的大小吗?

我应该看到的代码示例:

$string= "hello";
$hash = hash( 'sha512', $string, true );
var_dump($hash);

这应该打印:

string(64) "<hash value of 'hello'>"

就我而言,将“hello”替换为一个长 php 文件的内容。出于某种原因,var_dump 没有打印前面带有“string(64)”的引号中的值。

4

1 回答 1

1

您在哈希函数中使用第三个参数设置为true,因此您的输出是二进制格式,不适合在标准输出中查看。前一个哈希可能包含一些控制字符,这些字符会抑制下一个输出的一部分。二进制数据应以十六进制形式查看(第三个参数设置为false)或保存到文件并由十六进制编辑器浏览。

于 2013-08-09T19:25:35.293 回答