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
- DDOS 高防 VPS全球[VPS测评]
- 云创网络→55.2 元 月 512MB 内存 10GB SSD 空间 1虚拟空间(主机)
- Laravel 提示 SQLSTATE[HY000] [1045] Ac全球[VPS测评]
- 疯狂猜成语 图猜成语一个人一边出汗一边看书是什么成语?全球[VPS测评]
- EUserv→免费 月 1GB 内存 10GB 空间 1TB 流量 1G虚拟空间(主机)
- nat.bz→64 元 月 512MB 内存 5GB SSD 空间 20虚拟空间(主机)
- 优质低价 racknerd→“白色情人节”便宜 VPS 限量 100 个全球[VPS测评]
- 腾讯云双 12 促销云服务器到底怎么样 2 核 4G6M1499 元 3全球[VPS测评]
- .htaccess 设置整站所有链接 301 重定向全球[VPS测评]
- JustHost→10.5 元 月 512MB 内存 5GB 空间 不限虚拟空间(主机)
- 搬瓦工VPS补货DC9 CN2 GIA限量促销年付39.99美金套餐全球[VPS测评]
- 如何注册解析.tk,.ml,.ga,.cf,.gq等免费域名全球[VPS测评]
- vpsplayer 七五折特惠套餐,深圳BGP 折后¥66/月;香港CN香港VPS[主机]
- CloudIPLC七五折优惠 泉州CN2 VPS 大流量/100Mbps全球[VPS测评]
- ZJI 双十一 充值送 香港高防五折 阿里云香港线路立减270元香港VPS[主机]
- 宝塔面板 7.8 降级 7.7 低版本,关闭绕过强制绑定手机账号 亲测有全球[VPS测评]
- GigsGigsCloud新加坡大陆优化VPS上架全球[VPS测评]
- 昱格云 1核心 1024 MB内存 10G SSD 1T单向流量 100全球[VPS测评]
- 游戏服务器是什么意思?游戏服务器可以用云服务器吗?全球[VPS测评]
- 恒星云:高防服务器优惠活动,成都高防云服务器及辽宁香港服务器特惠活动香港VPS[主机]
- Bloggar-移动端友好的新闻博客类HTML5模板全球[VPS测评]
- 很简单的图片不规则布局样式,纯css样式实现的图片瀑布流布局全球[VPS测评]
- uuuvps:香港大带宽vps低至239元/年;香港服务器720元/e3香港VPS[主机]
- 极光KVM:美国香港vps CN2 GIA专线高速稳定,BGP服务器低至美国VPS[主机]
- 恒星云:高防服务器优惠活动,成都高防云服务器及辽宁香港服务器特惠活动香港VPS[主机]
- 8K超高清记录中国空间站凌月:天和核心舱与问天实验舱组成“土”字结构虚拟空间(主机)
- 租用美国服务器有哪些安全方案美国VPS[主机]
- acroservers:香港/日本/新加坡/洛杉矶等37个机房可选,海外日本VPS[主机]
- 腾讯云美国硅谷服务器/香港/新加坡:1核1G(Linux)云服务器仅28美国VPS[主机]
- 香港云服务器性价比高:香港云服务器哪家便宜香港VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-205694.html











