PHP 5.6 以后mcrypt_encrypt加密函數tip


之前公司使用5.3 5.4的php版本,使用mcrypt_encrypt加密,存在KEY長度為9位的秘鑰,也是可以正常使用的,

但是現在將PHP版本更新到7之后,發現有些商戶傳過來的參數無法解密,結果發現是PHP5.6以后不支持8位以上的無效長度KEY

(應該是8的整數倍的KEY是能用的,如8,16,32,64,不過沒有嘗試,如果不強制要求8位就足夠了)

 

 

資料:

mcrypt_encrypt 加密失敗

當參數密鑰key長度大於8位時,函數返回false,PHP 5.6版本后,不再接受無效長度的 key and iv 參數 
如果參數密鑰key長度大於8位,mcrypt_decrypt() 函數會產生警告並且返回 FALSE,導致加密失敗。

解決方案: 將密鑰長度截取到8位,這樣能兼容5.6后的PHP版本。

 


免責聲明!

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



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