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
- 疯狂猜成语 图猜成语一把尺子上面一个入一个出是什么成语?全球[VPS测评]
- 腾讯云 - 双十一促销 11.11 智惠上云 2C8G5M 三年付 12全球[VPS测评]
- QQ 空间被封怎么办?QQ 空间被封如何填写申诉解封?虚拟空间(主机)
- 大流量 VPS $6 月 512M 内存 30G SSD 5T 流量 1日本VPS[主机]
- 便宜 VPS $15 年 512M 内存 8G SSD 1T 流量 1G全球[VPS测评]
- 新商家慎重-LosAngelesVPS→$2.99 月 1 核 1G 不美国VPS[主机]
- LunaNode→加拿大 法国按小时计费 KVM 月费 3.5 美元起全球[VPS测评]
- 商家投稿 ZJI→美西服务器 香港服务器 日本服务器限量 7 折优惠日本VPS[主机]
- mysql 去除前后空白字符的终极办法全球[VPS测评]
- WordPress 修改管理页面登录地址全球[VPS测评]
- LNMP与OneinStack一键安装包区别与选择建议全球[VPS测评]
- on9host 1核心 512M内存 15G 储存 500G流量 30M全球[VPS测评]
- Cubecloud 香港CN2 GIA VPS → 港区Netflix 香港VPS[主机]
- 中国云计算,能啃的只剩硬骨头了全球[VPS测评]
- 什么是云计算?全球[VPS测评]
- 云计算拯救互联网巨头:谁抢跑,谁追赶?全球[VPS测评]
- wikihost,微基主机:1核/1G/15G/100Mbps/香港vp香港VPS[主机]
- 跨境电商平台首选香港服务器香港VPS[主机]
- earidc怎么样?香港三网cn2vps带宽1M月付29元香港VPS[主机]
- 麻花云双12活动:香港CN2云主机首月9元;安徽移动vps月付29元香港VPS[主机]
- 瓜云互联怎么样?香港/美国洛杉矶CN2高防vps 50G月付34元美国VPS[主机]
- 云计算到底是谁发明的?全球[VPS测评]
- 麻花云双12活动:香港CN2云主机首月9元;安徽移动vps月付29元香港VPS[主机]
- Centos7的firewall 防火墙如何设置端口转发?全球[VPS测评]
- 恒创科技:香港/美国云服务器2折起,年度特价低至13元/月,新购送京东E美国VPS[主机]
- acroservers:香港/日本/新加坡/洛杉矶等37个机房可选,海外日本VPS[主机]
- 恒创科技:国庆中秋双节同庆,香港1核2G云服务器,年付378元香港VPS[主机]
- 福州职业技术学院获得世界职业院校技能大赛云计算赛项银牌全球[VPS测评]
- 纳米云怎么样?纳米云香港vps,4核1G主机价格80元/月香港VPS[主机]
- SugarHosts糖果主机:虚拟主机5折(有独立IP);香港/美国cn独立服务器[U]
转载请注明原文地址:http://140.238.13.167:12355/read-211580.html











