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
- 玩具-invs→3.2 元 月 512MB 内存 5GB 空间 不限流量虚拟空间(主机)
- 宝塔面板回收站位置 宝塔面板回收站在哪里全球[VPS测评]
- ZJI 新春 55 折→香港大埔 2XE5-2630L 32GB 1TB香港VPS[主机]
- [黑五]TMThosting 全场 VPS 五五折 1.62 美元起 虚全球[VPS测评]
- Online→€1.99 月 C2350 4GB 内存 1TB 硬盘 不全球[VPS测评]
- 闪购 RackNerd→1 核 768M 内存 20G SSD 3T 流全球[VPS测评]
- centerhop→优质新加坡 VPS $27 年 1g 内存 25gSWINDOWS
- 三优云 uuuvps→香港 美国 日本 CN2 KVM 全场 8 折 买日本VPS[主机]
- 疯狂猜成语 图猜成语一个人在说自己有很多金子是什么成语?全球[VPS测评]
- 桔子数据日本 CN2 上线,三网回程 GIA,VPS 最高提供 20 个站群服务器[IP]
- 五月 RAKsmart 无视 cc 防御 100G 防御免费测试 E3-全球[VPS测评]
- 二月返场 JGKVM 优惠→香港 CMI 大带宽全场 8 折优惠 年付立香港VPS[主机]
- Hostodo 亚洲优化线路512MB内存8gNVME硬盘 3T大流量 全球[VPS测评]
- 正确看待域名是否需要添加 www 前缀,对SEO有何影响?全球[VPS测评]
- 云服务器能干什么?有几十种玩法?阿里云,腾讯云服务器如何购买?全球[VPS测评]
- 2023年 IDC市场结构和方向的深度分析全球[VPS测评]
- Mysql连接数过高,如何检查?全球[VPS测评]
- 曾经最大跨境电商平台团队收缩,只剩20人丨GoingGlobal周报全球[VPS测评]
- 吸血鬼崛起服务器怎么快速搭建?全球[VPS测评]
- 为什么大家都选择香港服务器建站香港VPS[主机]
- 中行升级服务力促跨境电商发展全球[VPS测评]
- 六六云,2核2G香港云服务器/1000GB流量/50Mbps端口/KVM香港VPS[主机]
- 磐逸云:全场8折优惠,1核1G香港套餐月付24元,日本NNT线路套餐,月日本VPS[主机]
- 阁天互联怎么样?香港cn2云服务器 圣何塞cn2vps仅20/月香港VPS[主机]
- 青叶云怎么样?青叶云国内/国外弹性云服务器价格,海外vps低至25.6元全球[VPS测评]
- 恒星云:高防服务器优惠活动,成都高防云服务器及辽宁香港服务器特惠活动香港VPS[主机]
- 香港云服务器的优势有哪些方面香港VPS[主机]
- 魔方云:2021春节促销_香港CN2/美国CN2全年最高折扣75折/香港美国VPS[主机]
- 戈登云VPS,6折,充值送50%,香港cn2,美国cn云服务器,2核2G美国VPS[主机]
- 长三角地区的算力需求规模到底有多大?全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-214552.html











