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
- php 生成随机浮点数以及 php 随机生成小数保留两位小数点全球[VPS测评]
- FDCServers→$23.76 年 128MB 内存 10GB SS虚拟空间(主机)
- HostUS→$6.45 月 4 核 1GB 内存 50GB SSD 空虚拟空间(主机)
- 禁止 input 输入框显示用户历史输入记录全球[VPS测评]
- VPS 测评 搬瓦工 DC8 机房→KVM 512M 内存套餐全球[VPS测评]
- WindowsVPS→$45 年 3G 内存 30GB SSD 空间 不WINDOWS
- VirMach 圣何塞机房补货→终身六折 $15 年 512MB 内存 全球[VPS测评]
- 疯狂猜成语 图猜成语一条鱼在水上是什么成语?全球[VPS测评]
- Ubuntu 下通过 Wine 安装 uTorrent全球[VPS测评]
- OneVPS - 首月 5 折优惠码 新加坡日本等 8 机房最低月付$4日本VPS[主机]
- DMIT洛杉矶新上sPro方案自带Cloudflare防御/CN2GIA全球[VPS测评]
- 体验 Google AdSense 广告联盟的链接广告样式全球[VPS测评]
- GreenCloudVPS → 美国欧洲存储型 → 2G 500G 美国VPS[主机]
- 疯鱼云怎么样?香港CN2VPS首月14元,续费19元香港VPS[主机]
- 六一云:香港CN2/洛杉矶高防/CDN,“返利+折扣”双优惠,折上折送实香港VPS[主机]
- wordpress 上传附件报错 “抱歉,出于安全的考虑,不支持此文件类全球[VPS测评]
- 港口雄开万里流丨不出国门海淘全球青岛跨境电商未来可期全球[VPS测评]
- 亿速云服务器双12活动:香港云服务器29元/月起,100GCDN流量只需香港VPS[主机]
- 亿恩科技香港云服务器 2核2G服务器特价700元/年香港VPS[主机]
- RFCHost:1核1G洛杉矶vps/15GB空间/1TB流量/KVM/虚拟空间(主机)
- 网站迁移服务器是如何运作的?新手站长看完这篇文章,很容易就能看完。全球[VPS测评]
- 快速云:云服务器和vps区别是什么云服务器和vps哪个比较安全2022-全球[VPS测评]
- 2022年黄河流域跨境电商博览会将于8月26日至28日在青岛西海岸新区举全球[VPS测评]
- acroservers:香港/日本/新加坡/洛杉矶等37个机房可选,海外日本VPS[主机]
- WHMCS 8.1如何简化注册页面全球[VPS测评]
- 轻云互联,香港美国vps终身8.8折17元/月起,cn2直连线路,50G美国VPS[主机]
- 桔子数据怎么样?便宜香港安畅CN2 VPS1核1G10M 28/月香港VPS[主机]
- 无忧云:香港大埔/荃湾云服务器5折优惠,可叠加优惠码,国内高防78元起香港VPS[主机]
- 云计算竞争日趋白热化云计算行业市场前景分析全球[VPS测评]
- kvmloc:E5-26XX/16G/1T HDD/20Mbps不限流量日本VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-217544.html











