PHP生成哈希值出现乱码的解决方案

/ 1评 / 1

近期需要用到短信验证码,在官方给出的文档中发现要使用hash()值,于是照做。过程中将hash()的 raw_output 参数设置为true,结果返回了一堆乱码,确定转换的对象为字符串后,将true改为false,发现正常了,于是去搜索了相关资料。下面是PHP官网给出的内容:

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

说明

string hash ( string $algo , string $data [, bool $raw_output = false ] )

参数

algo
要使用的哈希算法,例如:"md5","sha256","haval160,4" 等。

data
要进行哈希运算的消息。

raw_output
设置为 TRUE 输出原始二进制数据, 设置为 FALSE 输出小写 16 进制字符串。

返回值

如果 raw_output 设置为 TRUE, 则返回原始二进制数据表示的信息摘要, 否则返回 16 进制小写字符串格式表示的信息摘要。

不难发现,raw_output  参数的区别在于进制数,也是产生乱码的原因。

一条回应:“PHP生成哈希值出现乱码的解决方案”

  1. zephyr说道:

    很好

发表评论

电子邮件地址不会被公开。 必填项已用*标注