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
- 促销 n3servers→E5-2620v2 服务器仅售$19.5 月 独立服务器[U]
- 极客主机→49 元 月 KVM-1GB 20GB 300GB 拉斯维加斯全球[VPS测评]
- 便宜 Hostmem→1 核 1G 20G 硬盘 200Mbps 100全球[VPS测评]
- 疯狂猜成语 图猜成语一个人抱着一袋金子在骂另一个人是什么成语?全球[VPS测评]
- 优惠 Hosteons→免费 windows 系统 不限流量 年付免费换WINDOWS
- tp5.1 怎么获取当前模块名 控制器名 方法名?全球[VPS测评]
- 疯狂猜成语 图猜成语一根羽毛和一只角是什么成语?全球[VPS测评]
- 腾讯云服务器 12 月秒杀 2 核 4G3M998 元 3 年 2 核 全球[VPS测评]
- 促销 极光 KVM→4 月新增日本东京 CN2 产品 美国洛杉矶双向 C日本VPS[主机]
- OneinStack如何启用 Brotli 压缩全球[VPS测评]
- WordPress博客网站搜索引擎优化需要注意几个SEO细节全球[VPS测评]
- WordPress博客使用php页面代码实现外链go跳转的方法全球[VPS测评]
- WordPress搜索插件:Ivory Search全球[VPS测评]
- 触摸云香港CN2GIA线路/10M带宽 ¥26起/月;美国200G高防¥美国VPS[主机]
- 如何在百度搜索结果中显示你的WordPress站点Logo全球[VPS测评]
- DevCloud cloud-v-14欧年付 德国 1C1G30gb N全球[VPS测评]
- 邢志宏:加快推动高质量建设跨境电商综试区起势成势全球[VPS测评]
- sugarhosts首推DECADE云服务器,香港云服务器,1核512M香港VPS[主机]
- 亚当云怎么样?香港安畅cn2vps带宽10M月付28元香港VPS[主机]
- 百看不厌的文案,抖音唯美文案。全球[VPS测评]
- HTML5绿色有机食品电商网站模板 - Organtio全球[VPS测评]
- 创新互联:免备案美国香港云主机4核2G仅558元/月,5580元/年美国VPS[主机]
- 恒创科技:香港/美国云服务器2折起,年度特价低至13元/月,新购送京东E美国VPS[主机]
- ExCloud:1核256M存/8GB SSD空间/100GB流量/OV虚拟空间(主机)
- RangCloud:香港云主机,1核1G内存/15G SSD/2Mbps香港VPS[主机]
- 明恒互联:双旦同庆活动开启,100G国内高防云售价116元/月,香港云主香港VPS[主机]
- 美云香港云服务器怎么样?1核1G香港云服务器价格99元/月香港VPS[主机]
- 华纳云双十一钜惠活动:香港美国云服务器低至3.5折美国VPS[主机]
- 云计算的大门依旧没向雷军敞开全球[VPS测评]
- 港口雄开万里流丨不出国门海淘全球青岛跨境电商未来可期全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-208628.html











