解決c# md5與php md5加密不一致的問題(md5(unicode))


最近在做一個項目,客戶是用c#編寫的桌面應用程序,他在后台添加用戶,需要我用php做一款app實現用戶的一些基本功能。

首先是登陸,客戶直接添加的用戶密碼采用了md5加密方式,我在app登陸的時候取出數據進行驗證,驗證密碼的時候,一直提示密碼不正確,於是我打印出php md5('123456') :md5: e10adc3949ba59abbe56e057f20f883e . 但是客戶c#添加用戶的密碼卻存的是 md5(unicode): ce0bfd15059b68d67688884d7a3d3e8c

於是想辦法把php轉為unicode,試了很多辦法都不行。最后看到思否上一個提問和我遇到的問題一模一樣:“怎樣使得c#md5和php md5加密的值一樣”,然后下面有人給出了一個答案 :mb_convert_encoding( $str,'UTF-16LE','UTF-8'),迫不及待的馬上試了一下 結果果然是正確的 md5(mb_convert_enconding('123456','UTF-16LE','UTF-8')) :ce0bfd15059b68d67688884d7a3d3e8c 回去查了下手冊,發現iconc函數也可以達到此目的,唉,還是基礎掌握不扎實~

 

iconv

字符串按要求字符編碼來轉換

iconv($in_charset,$out_charset,$str)

將字符串¥str從 in_charset轉換編碼到out_charset

in_charset 輸入的字符集

out_charset 輸出的字符集

str 要轉換的字符串

返回值:返回轉換的字符串,或者在失敗時返回FALSE

mb_convert_encoding

轉換字符的編碼

mb_convert_encoding($str,$to_encoding,$from_encoding)

將string類型的str從可選的from_encoding轉換為to_encoding

返回值:編碼后的string

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM