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
- 搬瓦工→新增 10Gbps 带宽的 cn2 gia 线路 VPS 移动+全球[VPS测评]
- 特价 $69 月 E3-1230v2 16G 内存 2T 硬盘 10T美国VPS[主机]
- 推荐 Hosteons→洛杉矶机房 100Mbps 不限流量 年付 6 全球[VPS测评]
- GigsGigsCloud 日本 VPS 上线 分为 CN2 和软银线路日本VPS[主机]
- GB Host→£2.79 月 1GB 内存 10GB 空间 不限流量 虚拟空间(主机)
- VirPus→美国西雅图 VPS XEN 架构 4 核 1G 2.1 美美国VPS[主机]
- 特价服务器 数脉科技→香港独立服务器 5 折优惠 CN2+BGP 线路大独立服务器[U]
- php 从数组中返回一个随机值全球[VPS测评]
- tudcloud→“五一” 香港不限流量 VPS 一律 7 折优惠 三网香港VPS[主机]
- hostens→3 折优惠 $1.2 月 KVM 2G 内存 1 核 2全球[VPS测评]
- 使用测速脚本对国外VPS服务器进行测速全球[VPS测评]
- Contabo德国老牌商家新上新加坡数据中心,前1000名用户免设置费;美国VPS[主机]
- WordPress插件:Autoptimize 插件优化版 整合并压缩C全球[VPS测评]
- 哪些国外VPS商家可以支付宝付款?全球[VPS测评]
- WordPress插件:SM.MS UPLOADER上传图片到SM.MS全球[VPS测评]
- 2022年开源 WordPress 免费主题推荐全球[VPS测评]
- 青云互联 香港安畅 CN2GIA VPS八折优惠 1G内存/单核/5Mb香港VPS[主机]
- 筋斗云-台湾vps 5.35$ 月 1核1g内存25g硬盘 1TB流量 全球[VPS测评]
- xenonhost.co-美国 1C2G30GB 500GB 1Gbps美国VPS[主机]
- HKServerSolution → 4G内存 50G SSD 100M全球[VPS测评]
- HostKvm:1核/4G/30G硬盘/750G/20Mbps/香港kv香港VPS[主机]
- 六一云:香港CN2/洛杉矶高防85折优惠,CDN半年优惠,充值返利送水杯香港VPS[主机]
- HostHatch:1核/2GB/20GB空间/KVM/香港/洛杉矶/纽虚拟空间(主机)
- 野草云怎么样?香港、美国圣何塞高防VPS 1核1G3M 月付19元美国VPS[主机]
- 葫芦云:香港将军澳CN2云服务器24元/月,1核/1GB/25G硬盘/3香港VPS[主机]
- 酷锐云元旦促销活动:香港CN2/美国CN2高防vps月付20元起/美国原美国VPS[主机]
- 向日葵-漏洞科普:海外云服务器三种漏洞修复方法快收藏起来!全球[VPS测评]
- SEO和网页加载速度有关系吗?如何提升?全球[VPS测评]
- 雪花云怎么样?雪花云香港云服务器1核1G2M仅19元/月香港VPS[主机]
- 彗星云:香港特价vps1核/1G/无限流量/月付仅9元,年付仅75元;国香港VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-220556.html











