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
- RAKsmart 十月活动→圣何塞 258IP 站群服务器 197 美元站群服务器[IP]
- 帝国 cms7.5 伪静态规则(nginx)全球[VPS测评]
- ¥27 月 256M 内存 10G 硬盘 512G 1Gbps KVM 全球[VPS测评]
- 微基主机 7 月促销→美国主机 65 折优惠 日本 CN2 VPS 首月日本VPS[主机]
- RAKsmart-日本 KVM 1G 内存 40G 硬盘 5M 无限流量日本VPS[主机]
- C 根据生日计算准确年龄的方法全球[VPS测评]
- bbr plus bbr 原版 bbr 魔改和锐速四合一脚本全球[VPS测评]
- HKhoster→$69 月 1GB 内存 30GB 空间 不限流量 1虚拟空间(主机)
- Bacloud→新增荷兰机房 八五折 支持支付宝 芝加哥&立陶宛等全球[VPS测评]
- JGKVM→CN2 GIA 线路即将涨价 三月收尾活动 1 核 512M全球[VPS测评]
- HostXen→70 元 月 XEN-2GB 35GB 7M 无限 日本日本VPS[主机]
- 腾讯云 - 云服务器精选秒杀 1 核 2G2M 三年付 680 元全球[VPS测评]
- 解决Debian9系统环境中文乱码的问题 检查设置UTF-8编码全球[VPS测评]
- 从Alpnames域名注册商跑路看我们应该如何选择域名注册商全球[VPS测评]
- 阿里云国际ESSD轻量服务器,峰值带宽30Mbps,性价比选ESSD,便全球[VPS测评]
- AlphaVPS保加利亚便宜服务器,E5处理器,月付39欧元;AMD E全球[VPS测评]
- 速云 全场八折 香港CN2GIA 美国高防CN2GIA 年付188起 月美国VPS[主机]
- HostLica → 2.9$ 月 土耳其 1C2G25G硬盘 无限流量全球[VPS测评]
- ZeptoVM 1G内存 10G SSD 1T双向流量 50M国际带宽 全球[VPS测评]
- 如何更改WHMCS默认后台路径让WHMCS系统更安全全球[VPS测评]
- 创意IT服务公司主页网站模板 - Softets全球[VPS测评]
- 美国信贷市场的痛苦将不亚于上世纪70年代的通胀时期美国VPS[主机]
- RangCloud:香港云主机,1核1G内存/15G SSD/2Mbps香港VPS[主机]
- 为什么要拥有一台VPS?全球[VPS测评]
- 极光kvm怎么样?香港大带宽VPS促销1核1G内存19元/月起,5G防御香港VPS[主机]
- earidc怎么样?香港三网cn2vps带宽1M月付29元香港VPS[主机]
- 美云香港云服务器怎么样?1核1G香港云服务器价格99元/月香港VPS[主机]
- 硅云香港云服务器怎么样?硅云香港vps访问速度快不快?香港VPS[主机]
- 因搜包耽误员工下班,苹果将支付3050万美元赔款全球[VPS测评]
- SEO和网页加载速度有关系吗?如何提升?全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-208628.html











