91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP md5函數的16位字符亂碼怎么辦

發布時間:2020-08-19 11:17:30 來源:億速云 閱讀:297 作者:小新 欄目:編程語言

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

php md5 16位字符亂碼的解決辦法:1、對輸出的16字節的二進制轉化為十六進制;2、通過“substr(md5($str),8,16)”方法來獲得16個字符的md5密文。

PHP md5函數的16位字符亂碼怎么辦

亂碼

PHP的md5函數用于對字符串參數進行md5運算,該函數有兩個參數:

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

第一個參數是輸入字符串;第二個參數默認為FALSE,設置為TRUE時可以輸出16位的md5值。

默認情況下,md5(string $str) 會返回:32 字符、十六進制數字形式的散列值。
如果加上第二個參數 md5(string $str,TRUE) 則返回:16字節長度的原始二進制格式的散列值。

由此我們看出,當返回16字節長度(對應16個字符,因為符合ASCII)的二進制格式時,由于瀏覽器對其進行了字符化處理,由此就會產生亂碼:

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

PHP md5函數的16位字符亂碼怎么辦

解決

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

  1. 對輸出的16字節的二進制轉化為十六進制;
  2. md5的密文中,16位密文與32位密文的第8-24位子字符串是一樣的,所以我們就可以通過截取的方式:substr(md5($str),8,16)來獲得16個字符的md5密文了。其中第二個參數和第三個參數代表從第8個字符開始(下標從0開始),取16個字符。

這里我們用第二個方法來解決亂碼問題。還是以上面的例子:

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

PHP md5函數的16位字符亂碼怎么辦

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

以上是PHP md5函數的16位字符亂碼怎么辦的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东山县| 宝丰县| 北辰区| 石河子市| 湘阴县| 资兴市| 旬邑县| 延川县| 庆城县| 临桂县| 石狮市| 曲阳县| 皋兰县| 南投市| 保靖县| 大兴区| 开江县| 通河县| 白玉县| 广昌县| 漾濞| 黄浦区| 巧家县| 苏尼特右旗| 三都| 大田县| 彭州市| 阿克苏市| 盘锦市| 东丰县| 霍山县| 西华县| 策勒县| 普陀区| 育儿| 延边| 神农架林区| 平度市| 台南县| 雷州市| 桐庐县|