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
- 便宜 $3.5 月 2 核 CPU 4G 内存 75G SSD 2Gbp全球[VPS测评]
- 降价 鲨鱼机房服务器直降 500 美元 免费 DDos 防御 shark全球[VPS测评]
- Laravel faker 生成中文测试数据全球[VPS测评]
- 疯狂猜成语 图猜成语一个脸红的男人看着一个美女还有两颗心是什么成语?全球[VPS测评]
- Moack.co.kr→39 美元韩国独立服务器每日限量抢独立服务器[U]
- Fresh Roasted Hosting→$30 月 I3-540 8全球[VPS测评]
- 推荐 中小型企业怎么选择云服务器和 VPS 企业买 VPS 那里比较好!全球[VPS测评]
- 老薛主机 共同抗疫 共渡难关 网络创业 VPS 爆款 9.9 元疯抢全球[VPS测评]
- 绕美国-NexusBytes→$3 月 2GB 内存 25GB SSD 虚拟空间(主机)
- BudgetVM→$80 月 E3-1230v2 16GB 内存 480日本VPS[主机]
- GigsGigsCloud 日本 cn2 gia vps 仅$7.3 起日本VPS[主机]
- hostkvm新上洛杉矶联通线路 VPS 云服务器 AS4837/1G内全球[VPS测评]
- ZeptoVM 1G内存 10G SSD 1T双向流量 50M国际带宽 全球[VPS测评]
- 50KVM VPS免费自助换IP功能全球[VPS测评]
- 加拿大以“国安”为由禁止华为、中兴参与5G建设全球[VPS测评]
- 40火伞高压电爬坡更让企业用电于民全球[VPS测评]
- 香港云服务器的优势有哪些方面香港VPS[主机]
- 漂亮的Css3响应侧边栏菜单,动画风格侧边栏导航菜单样式全球[VPS测评]
- 云计算的大门依旧没向雷军敞开全球[VPS测评]
- 人力资源管理系统前端Web模板 - SmartHR全球[VPS测评]
- 傲闪云vps,1核1G低至10元起,国内高防/香港CN2/美国CN2/美美国VPS[主机]
- 新华全媒+丨第六届全球跨境电商大会:跨境电商加快拓宽中国贸易新通道全球[VPS测评]
- 磐逸云:全场8折优惠,1核1G香港套餐月付24元,日本NNT线路套餐,月日本VPS[主机]
- 戈登云VPS,6折,充值送50%,香港cn2,美国cn云服务器,2核2G美国VPS[主机]
- 世界杯季疫情突发,跨境电商订单排队,义乌商人面临难题全球[VPS测评]
- tudcloud,香港vps终身八折$7.76/月起,1核1G内存,香港香港VPS[主机]
- 适合美容院的正能量抖音文案,唯美阳光,正能量满满全球[VPS测评]
- RFCHost:1核1G洛杉矶vps/15GB空间/1TB流量/KVM/虚拟空间(主机)
- kvmloc:E5-26XX/16G/1T HDD/20Mbps不限流量日本VPS[主机]
- 数据中心助力光纤光缆行业发展全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-211580.html











