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
- OneProvider 巴黎独立服务器 促销独立服务器[U]
- PHP 国家及地区代码数组全球[VPS测评]
- [11.11]阿里云国内云服务器年付 86 元三年 229 元 香港云服香港VPS[主机]
- public function list()报错 syntax erro全球[VPS测评]
- DEDE 后台验证码不显示 DEDECMS 网站搬家后台验证码显示错误全球[VPS测评]
- 便宜 racknerd→1 核 768M 内存 20G SSD 1T 流全球[VPS测评]
- php 高效统计 txt 大文件行数函数全球[VPS测评]
- 合字下面的口中有一个应字是什么成语?全球[VPS测评]
- 便宜 HoRain Cloud→¥208 年付 1 核 512M 1T 日本VPS[主机]
- cloudcone→超大硬盘 VPS 补货 洛杉矶 KVM 最高 500全球[VPS测评]
- linux(ubuntu centos)下开启 mysql 远程访问权限全球[VPS测评]
- 疯狂猜成语 图猜成语一个人站在地上举着天空中的云彩是什么成语?全球[VPS测评]
- 恒创科技美国服务器限时终身 5 折预售,设备全新,CN2 GIA 回国带美国VPS[主机]
- MoeCloud→2019 年国庆节活动 有洛杉矶 cn2 gia kv全球[VPS测评]
- Debian Ubuntu 内核降级教程-降低(BBR)为支持锐速的内核全球[VPS测评]
- 搬瓦工年付19.99刀10G KVM CN2传家宝全球[VPS测评]
- PacificRack元旦 便宜美国VPS/4G内存/10T大流量 年付美国VPS[主机]
- WordPress 网站自定义广告位占位/出租代码全球[VPS测评]
- anyNode新年特惠 拉斯维加斯 VPS 2核/4G内存/60G硬盘 全球[VPS测评]
- 如何检测WordPress博客的访问速度?全球[VPS测评]
- QuantumCore-澳大利亚1AUD首月 VPS测评全球[VPS测评]
- [优惠]CloudCone 1810 闪购全球[VPS测评]
- DMIT日本Lite → 改为三网CMI回程 → 6.9美金每月起日本VPS[主机]
- 全球云lovps,香港CN2线路vps 新品七折月付49元香港VPS[主机]
- 详细介绍vps云服务器及其作用全球[VPS测评]
- 因搜包耽误员工下班,苹果将支付3050万美元赔款全球[VPS测评]
- 快速云:科普云服务器服务器的概念和作用2022-08-2313:26来源全球[VPS测评]
- 潮科技|阿里云发布第七代高主频云服务器ECS和含光800云服务器全球[VPS测评]
- 磐逸云:全场8折优惠,1核1G香港套餐月付24元,日本NNT线路套餐,月日本VPS[主机]
- 狗云DogYun,香港cn2云服务器/优惠码/流量包,按小时计费云服务器香港VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-205694.html











