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
- 双十一 景文互联→全场云服务器 7 折 最高赠送 2G 内存 服务器 C全球[VPS测评]
- PHP 判断是否是手机等移动设备的方法全球[VPS测评]
- 2020 要速度快?免备案?上香港 cn2 vps 整理一些售卖香港 c香港VPS[主机]
- 教程 2019 年 namesilo 域名转入 name.com 最新图全球[VPS测评]
- 疯狂猜成语 图猜成语一个人端着盘子里面装着梨另一个人在推辞是什么成语?全球[VPS测评]
- Netcup→€6 月 2 核 8GB 内存 160GB SSD 空间 虚拟空间(主机)
- 稳定便宜 腾讯云→99 元 年的套餐又开始秒杀了 国内起步做站必选套餐全球[VPS测评]
- 补货 CloudCone→年付$15 1 核 512M 内存 10G 硬全球[VPS测评]
- Digital-vm→$2.8 月 KVM-512MB 30G SSD 日本VPS[主机]
- 便宜 VPS $18 年 2 核 CPU 2G 内存 25G SSD 3全球[VPS测评]
- 香港直连 ¥432 年 2 内存 30G 硬盘 300G 流量 30Mb香港VPS[主机]
- BlueVPS→$6.39 月 256MB 内存 10GB 空间 不限流虚拟空间(主机)
- vultr 韩国 vps 云服务器上线,三网直连,按小时计费,1 核 1韩国VPS[主机]
- 狗云 VPS:五大 CN2 GIA 直连数据中心 圣何塞 CN2 GIA全球[VPS测评]
- Metrabyte-8$ 月 2核2G内存20G硬盘 泰国曼谷 最高1G全球[VPS测评]
- CloudCone 786 内存 10G HDD 1T流量 洛杉矶 MC全球[VPS测评]
- 昱格云 1核心 1024 MB内存 10G SSD 1T单向流量 100全球[VPS测评]
- 跨境电商平台首选香港服务器香港VPS[主机]
- 做跨境电商一个月都有多少收入?全球[VPS测评]
- 阿里云服务器一年价格多少钱?阿里云服务器报价全球[VPS测评]
- 关键路径、资金情况、政策关键数据中心的可持续发展路径在哪里?全球[VPS测评]
- 全球云lovps,香港CN2线路vps 新品七折月付49元香港VPS[主机]
- 拼多多也要做跨境电商?出海之路能一帆风顺吗,了解一下全球[VPS测评]
- Centos7的firewall 防火墙如何设置端口转发?全球[VPS测评]
- diyvm:香港vps/美国vps/日本vps/2核/2G内存/5M带宽日本VPS[主机]
- CMCUCT:2核2GB/20GB香港ntt线路vps 6TB流量/1G香港VPS[主机]
- 亿速云“双11”上云狂欢大促 高防云服务器、裸金属服务器优惠套餐全球[VPS测评]
- 糖果主机(sugarhosts):春季优惠,云服务器/云vps/虚拟主机全球[VPS测评]
- LOCVPS,全新香港大浦CN2 VPS 2核4G内存3M仅54/月香港VPS[主机]
- 什么是云服务器?云服务器怎么登陆?全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-202786.html











