PHPmd5函數(shù)的16位字符亂碼怎么辦

這篇文章主要介紹PHP md5函數(shù)的16位字符亂碼怎么辦,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)是專業(yè)的絳縣網(wǎng)站建設(shè)公司,絳縣接單;提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行絳縣網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

php md5 16位字符亂碼的解決辦法:1、對(duì)輸出的16字節(jié)的二進(jìn)制轉(zhuǎn)化為十六進(jìn)制;2、通過(guò)“substr(md5($str),8,16)”方法來(lái)獲得16個(gè)字符的md5密文。

PHP md5函數(shù)的16位字符亂碼怎么辦

亂碼

PHP的md5函數(shù)用于對(duì)字符串參數(shù)進(jìn)行md5運(yùn)算,該函數(shù)有兩個(gè)參數(shù):

md5 ( string $str [, bool $raw_output = FALSE ] ) : string

第一個(gè)參數(shù)是輸入字符串;第二個(gè)參數(shù)默認(rèn)為FALSE,設(shè)置為TRUE時(shí)可以輸出16位的md5值。

默認(rèn)情況下,md5(string $str) 會(huì)返回:32 字符、十六進(jìn)制數(shù)字形式的散列值。
如果加上第二個(gè)參數(shù) md5(string $str,TRUE) 則返回:16字節(jié)長(zhǎng)度的原始二進(jìn)制格式的散列值。

由此我們看出,當(dāng)返回16字節(jié)長(zhǎng)度(對(duì)應(yīng)16個(gè)字符,因?yàn)榉螦SCII)的二進(jìn)制格式時(shí),由于瀏覽器對(duì)其進(jìn)行了字符化處理,由此就會(huì)產(chǎn)生亂碼:

$str = "PHP";
echo "字符串:".$str."<br>";
echo "TRUE - 原始 16 字符二進(jìn)制格式:".md5($str,TRUE)."<br>";
echo "FALSE - 32 字符十六進(jìn)制格式:".md5($str)."<br>";

PHP md5函數(shù)的16位字符亂碼怎么辦

解決

那么如何得到不亂碼的16位md5值呢?有兩種方法:

  1. 對(duì)輸出的16字節(jié)的二進(jìn)制轉(zhuǎn)化為十六進(jìn)制;
  2. md5的密文中,16位密文與32位密文的第8-24位子字符串是一樣的,所以我們就可以通過(guò)截取的方式:substr(md5($str),8,16)來(lái)獲得16個(gè)字符的md5密文了。其中第二個(gè)參數(shù)和第三個(gè)參數(shù)代表從第8個(gè)字符開始(下標(biāo)從0開始),取16個(gè)字符。

這里我們用第二個(gè)方法來(lái)解決亂碼問(wèn)題。還是以上面的例子:

$str = "PHP";
echo "字符串:".$str."<br>";
echo "TRUE - 原始 16 字符二進(jìn)制格式(亂碼):".md5($str,TRUE)."<br>";
echo "TRUE - 原始 16 字符二進(jìn)制格式(不亂碼):".substr(md5($str),8,16)."<br>";
echo "FALSE - 32 字符十六進(jìn)制格式:".md5($str)."<br>";

PHP md5函數(shù)的16位字符亂碼怎么辦

備注:而如果需要大寫的md5值,直接使用strtoupper(…)函數(shù)即可。

以上是PHP md5函數(shù)的16位字符亂碼怎么辦的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:PHPmd5函數(shù)的16位字符亂碼怎么辦
鏈接分享:http://bm7419.com/article30/igeeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站建設(shè)微信公眾號(hào)、網(wǎng)站制作、App設(shè)計(jì)自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)