php 使用 md5 函数生成 16 位 md5 值返回乱码的原因以及解决方法
![]() | ![]() | ![]() | ![]() |
| 【性价之王】 | 【线路之王】 | 【价格之王】 | 【配置之王】 |
| 【免费之王】 | 【香港首推】 | 【梯子之王】 | 【独服之王】 |

一直以来都是使用 32 位的 md5 码,最近有个需求是要用 16 位 md5 码,查了 php 官方手册,采用如下方式生成 md5 码,结果却返回乱码。
$code = md5($str,true);//$code 是乱码又仔细的看了眼手册,手册中关于第二个参数的描述是:如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以 16 字节长度的原始二进制格式返回。
而对于 md5 函数的默认返回值定义是:以 32 字符十六进制数字形式返回散列值。
也就是说,我们平时使用 md5 返回的是32 字节长度的十六进制数字形式,如果第二个参数设置为 true 返回的是16 字节长度的原始二进制格式。虽然有点绕口,但很显然两种返回格式是完全不同的,因此也就导致了乱码的产生。
解决方法有两种,一是将这个 16 字节的原始二进制格式码转为十六进制;二是采取截取的办法,因为一个值的 32 位 md5 码的第 8 到 24 位和 16 位 md5 的字符串是一样的。
附解决方法二代码:
$code = substr(md5($str),8,16);//$code 是 16 位的 md5 码。猜你可能想看的VPS
- Xhostserver→499 元 月 E3-1230v2 16GB 2全球[VPS测评]
- BOSSbirthday 促销 RackNerd→1 核 1.5G 20全球[VPS测评]
- [11.11]LOCVPS→KVM 七折 XEN 八折 充 300 送 全球[VPS测评]
- 自行测试-Ransom IT→$21 季 1GB 内存 50GB SSD虚拟空间(主机)
- linux 下开启 SSH 允许 root 用户远程无密码登录全球[VPS测评]
- 疯狂猜成语 图猜成语一个人胳膊打着绷带 玫瑰花掉在地上 一颗心碎了看着两全球[VPS测评]
- 疯狂猜成语 图猜成语日历上三个日子是太阳剩下的都是冰块是什么成语?全球[VPS测评]
- Namecheap 注册 com 域名优惠 46% 注册 net 域名优全球[VPS测评]
- 真实测评 死海网络美国圣何塞 VPS 测评数据 100M 端口不限流量美国VPS[主机]
- 不建议年付-ParkinHost→50 欧元 年 200Mbps 宽带 全球[VPS测评]
- [强推]搬瓦工$37.79 年双向 CN2 GIA 线路机器补货了 速度全球[VPS测评]
- $2 月 512M 内存 10G SSD 1Gbps 不限流量 KVM 全球[VPS测评]
- grep 检索指定扩展名的文件内容,grep 指定文件后缀名全球[VPS测评]
- 搬瓦工又一次关闭免费更换IP服务全球[VPS测评]
- 解决Debian9系统环境中文乱码的问题 检查设置UTF-8编码全球[VPS测评]
- PS 打不开 WebP 图片的解决方法全球[VPS测评]
- Contabo高性能服务器,德国机房免设置费,1Gbps-10Gbps大全球[VPS测评]
- HOSTIFY → 11$ 月 越南 2C2G50G硬盘 100M不限流全球[VPS测评]
- 4server-新加坡 香港 英国 俄罗斯 美国等-1C1G20GB 3美国VPS[主机]
- CubeCloud 新年促销 75 折全球[VPS测评]
- [优惠]CloudCone 1810 闪购全球[VPS测评]
- 美国信贷市场的痛苦将不亚于上世纪70年代的通胀时期美国VPS[主机]
- 实例 GIA0910629396 重启失败,原因:sudo: unabl全球[VPS测评]
- 6种样式社交论坛网站HTML5模板 - Social全球[VPS测评]
- 印象云怎么样?85折香港安畅CN2vps带宽3M月付23元香港VPS[主机]
- 磐逸云怎么样?CN2线路香港VPS月付20元香港VPS[主机]
- 又一跨境电商产业园落户!中山石岐签约引进16个项目全球[VPS测评]
- 常见的CN2,GIA,CIA 各个网络线路解释全球[VPS测评]
- 40火伞高压电爬坡更让企业用电于民全球[VPS测评]
- 租用美国服务器有哪些安全方案美国VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-220556.html











