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
- Purplehost→$7.1 月 2 核 4GB 内存 30GB SS虚拟空间(主机)
- hostens→3 折优惠 $1.2 月 KVM 2G 内存 1 核 2全球[VPS测评]
- form 表单外面元素提交表单的方法全球[VPS测评]
- CentOS 下 iptables 防火墙基本操作教程全球[VPS测评]
- 云霸天下 IDC 韩国 CN2 直连服务器促销,100M 独享双向 CN韩国VPS[主机]
- 腾讯云服务器,国内 2 核 4G 内存 768 元 3 年,香港 1 核香港VPS[主机]
- 腾讯云 - 云服务器精选秒杀 1 核 2G2M 三年付 680 元全球[VPS测评]
- Table 'XXX' is marked as crashed and全球[VPS测评]
- 疯狂猜成语 图猜成语一个人在火中跑向一锅汤是什么成语?全球[VPS测评]
- 便宜 RAKsmart→“抄底价 购实惠” 爆款 G 口 不限低至 19全球[VPS测评]
- 方框中一个天字 月亮星星中间一个谭字是什么成语?全球[VPS测评]
- 适合做站 LOCVPS→美国圣何塞 CN2 线路 VPS 德国 CN2 美国VPS[主机]
- WordPress插件:SM.MS UPLOADER上传图片到SM.MS全球[VPS测评]
- 如何选购合适的 VPS ?全球[VPS测评]
- WordPress建立数据库连接时出错怎么办?全球[VPS测评]
- CWVPS(cheapwindowsvps)美国高配 windows vWINDOWS
- Linode VPS 新加坡 测试记录全球[VPS测评]
- 8K超高清记录中国空间站凌月:天和核心舱与问天实验舱组成“土”字结构虚拟空间(主机)
- Bloggar-移动端友好的新闻博客类HTML5模板全球[VPS测评]
- 桔子数据:1核1GB香港CN2 GIA vps促销28元/月,最高30M香港VPS[主机]
- edgeNAT双十二:韩国VPS/美国CN2/香港CN2VPS主机,月付韩国VPS[主机]
- 无忧云,香港VPS全线5折促销,四川高防服务器/大连BGP/德阳高防/深香港VPS[主机]
- 云服务器能干什么?有几十种玩法?阿里云,腾讯云服务器如何购买?全球[VPS测评]
- 2021硅云新年献礼活动:香港企业级云服务器2核4G5M仅2888元/5香港VPS[主机]
- 言車新车|大阳VPS125混动踏板,长续航,代步通勤9980元起全球[VPS测评]
- GreenCloudVPS:6折优惠,日本、新加坡、香港等KVM VPS日本VPS[主机]
- 触摸云:香港GT ④区适合建站vps,折后最低套餐29.75/月香港VPS[主机]
- locvps:香港cn2vps(葵湾机房),2核2G40g硬盘,8折优惠WINDOWS
- 麻花云怎么样?安徽移动vps月付29元/香港vps月付21元香港VPS[主机]
- 明恒互联:双旦同庆活动开启,100G国内高防云售价116元/月,香港云主香港VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-208628.html











