尝试了解php's hash method的最后一个参数raw_data
。
文档说明raw_data:
设置为TRUE时,输出原始二进制数据。 FALSE输出小写 hexits。
将使用哪些方案? 我们什么时候需要二进制数据与六角形?
答案 0 :(得分:1)
如果将此变量设置为true,则会得到二进制结果。这样的结果较小但是有些设备你不能使用它(例如,你不能在url中传递它) - 在这种情况下你可以设置raw_data = false来获得一个字符串,其中每个哈希字节由两个十六进制数字表示(所以字节10111001将表示为B5)。这种表示可以很容易地转换回二进制序列,并且可以在任何可以使用常规字符串的地方使用,但会更大。
答案 1 :(得分:1)
您可以使用二进制模式将编码从十六进制更改为其他内容,例如
echo base64_encode(hash('md5', 'hello', true));
// XUFAKrxLKna5cZ2REBfFkg==
此外,将原始数据存储在数据库中占用的空间更少;虽然你在可读性方面做了妥协,但是再从你的数据库中复制/粘贴是不切实际的。