PHP 'hash' 方法 'raw_data' 参数


PHP 'hash' method 'raw_data' parameter

试图理解php哈希方法的最后一个参数raw_data

文档状态raw_data:

设置为 TRUE 时,输出原始二进制数据。FALSE 输出小写 嘶。

这将使用什么方案?我们什么时候需要二进制数据与退出?

您可以使用二进制模式将编码从十六进制更改为其他内容,例如

echo base64_encode(hash('md5', 'hello', true));
// XUFAKrxLKna5cZ2REBfFkg==

此外,将原始数据存储在数据库中占用的空间更少;不过,您确实在可读性方面妥协了,从数据库中复制/粘贴不再切实际。

如果将此变量设置为 true,您将获得二进制结果。这样的结果较小,但有些设备无法使用它(例如,您无法在 url 中传递它( - 在这种情况下,您可以设置 raw_data=false 以获取一个字符串,其中每个哈希字节都由两个十六进制数字表示(因此字节10111001将表示为 B5(。这种表示形式可以很容易地转换回二进制序列,并且可以在任何地方使用,你可以使用常规字符串,但会大得多。