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
- cfhost→18.88 元 月 512MB 内存 40GB SSD 空虚拟空间(主机)
- 双十一 LOCVPS→全新 KVM 七折优惠 充值 300 送 50 双全球[VPS测评]
- 疯狂猜成语 图猜成语一只手抓着草是什么成语?全球[VPS测评]
- 标准互联→美国裸金属服务器促销 750 元 月 E5 10 核 64G 美国VPS[主机]
- VirMach - 特价便宜 VPS 方案汇总全球[VPS测评]
- 建站推荐 阿里云 8 月促销→云服务器全场 2 折起购 香港 1G 云服香港VPS[主机]
- 补货通知 搬瓦工→年付 46.87 美元 512M 内存套餐补货了 CN全球[VPS测评]
- JQuery 根据指定值动态设置 select 下的 option 选中全球[VPS测评]
- $5 月 2CPU 512M 内存 12G SSD 1.5T 1Gbps全球[VPS测评]
- Krypt 新平台 KVM 月付 5 美元起 年付 5 折 洛杉矶 CN全球[VPS测评]
- 存储型 VPS $2 月 512M 内存 11G NVMe+256G 空虚拟空间(主机)
- 知更鸟Begin主题代码实现外链转内链并base64加密全球[VPS测评]
- 如何不需要使用插件就可以实现WordPress代码高亮功能全球[VPS测评]
- 如何让WordPress博客变得更加安全全球[VPS测评]
- LOCVPS 全场八折优惠,双十一充300送50充500送100充600全球[VPS测评]
- wordpress添加访客排行代码 自动实现最新评论排第一全球[VPS测评]
- 傲游主机全场vps8折,美国CN2/香港CN2/德国CN2/荷兰CN2等美国VPS[主机]
- CheapWindowsVPS五折促销,$4.5起/月;可安装LinuxWINDOWS
- 原创解析:云计算含义及定义全球[VPS测评]
- Linux chown -R 指令介绍与使用全球[VPS测评]
- 华凯易佰同比扭亏跨境电商行业回暖H2旺季将至|中报追踪全球[VPS测评]
- 持续高温!长沙所有初中新生停止军训!全球[VPS测评]
- 免备案服务器对权重和网站排名有影响吗?全球[VPS测评]
- 众创逸云:清明促销,香港沙田/安畅vps前两月半价;美国CERA首月半价美国VPS[主机]
- 彗星云:香港特价vps1核/1G/无限流量/月付仅9元,年付仅75元;国香港VPS[主机]
- 2020畅行云双11活动:海内外云服务器超低1.5折,2核2G5M云主机全球[VPS测评]
- JGKVM促销,美国cn2vps服务器价格再创新低,平均6.5元/月起美国VPS[主机]
- VPS到底有什么用?全球[VPS测评]
- Ubuntu关机命令是什么?Ubuntu关机命令介绍全球[VPS测评]
- Mysql连接数过高,如何检查?全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-202786.html











