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
- 四折优惠 $0.8 月 256M 内存 15G 硬盘 256G 流量 1全球[VPS测评]
- 腾讯云服务器双 11 秒杀最后一天 国内 香港云服务器 268 元 3 香港VPS[主机]
- 做站推荐 CubeCloud→香港 A 区接入 CN2 与国际 BPG 香港VPS[主机]
- 优惠 Digital-VM→全场 7 折优惠 不限流量 亚洲机房 月付低全球[VPS测评]
- PHP 判断是否为微信浏览器(微信客户端)的函数全球[VPS测评]
- 云翼计划活动 9.5 元每月 2G 内存 40G 硬盘 非学生也可以申请全球[VPS测评]
- 免费 KT 旗下 VPS 品牌 iON 免费送 14 天新加坡 VPS 全球[VPS测评]
- 腾讯云秒杀→双核 4G6M 三年 1499 元 单核 2G2M 三年仅 全球[VPS测评]
- DedeCMS 伪静态规则(nginx)全球[VPS测评]
- 优惠 ZJI→全新上线 美国山河城 防御型 VDS 配备抗 20Gbps美国VPS[主机]
- hostiger美国便宜VPS黑五,VMware VPS年付19美元起;美国VPS[主机]
- 用Google Adsense自动广告来赚更多的钱全球[VPS测评]
- hostodo新增斯波坎机房,八月促销Nvme硬盘容量翻倍,赠送免费Di全球[VPS测评]
- Delta.BG → 6$ 月 罗马尼亚VPS 1C1G25G硬盘 1T全球[VPS测评]
- 修罗香港IPLC → 1核 256M内存 单向50GB 15mbps →香港VPS[主机]
- 拼多多拟建跨境电商平台:挖角SHEIN员工,0佣金招商入驻全球[VPS测评]
- 拼多多正筹建跨境电商平台:密集挖角SHEIN员工,零佣金招商入驻全球[VPS测评]
- 快速云:云计算分类和云计算的特点全球[VPS测评]
- Weebly网站迁移到WordPress的实操上手。全球[VPS测评]
- 购买香港服务器需要做哪些准备香港VPS[主机]
- Fatal error: Allowed memory size of 全球[VPS测评]
- 快速云:怎么连接vps?VPS的用途有哪些?全球[VPS测评]
- 咖啡主机:美国高防vps、香港vps 可享受6-7折促销 每月仅需14元美国VPS[主机]
- SugarHosts,美国云服务器,洛杉矶cn2中美极速专线,香港建站服美国VPS[主机]
- 快速云:云计算分类和云计算的特点全球[VPS测评]
- 宝塔面板在香港服务器安装启动不了nginx怎么办?香港VPS[主机]
- 舍利云:香港美国vps云服务器/BGP线路元旦全场9折,低至36元/月美国VPS[主机]
- 买了一台云服务器到底能干什么?全球[VPS测评]
- 易探云:香港云服务器2核2G5M首月39元,带1G防御,年付6.8折优惠香港VPS[主机]
- cloudpowerall:美国洛杉矶CN2 VPS,年付$9.99;香美国VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-217544.html











