PHP使用自定義key實現(xiàn)對數(shù)據(jù)加密解密的方法
本文實例講述了PHP使用自定義key實現(xiàn)對數(shù)據(jù)加密解密的方法。分享給大家供大家參考,具體如下:
客戶端和服務端通信時,有個場景很常見,通過一個id作為url參數(shù)來回傳遞。假設現(xiàn)在業(yè)務上只有這個id標識,那么需要稍微安全一點的通信,對這個id進行加密傳輸,到服務端再進行解密。這里需要一個服務端進行保密的key,利用這個key進行加密和解密。
加解密的方法如下:$str是需要加解密的字符串,$key是自己定義的一個key
// 加密 function encryptStr($str, $key){ $block = mcrypt_get_block_size('des', 'ecb'); $pad = $block - (strlen($str) % $block); $str .= str_repeat(chr($pad), $pad); $enc_str = mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB); return base64_encode($enc_str); } // 解密 function decryptStr($str, $key){ $str = base64_decode($str); $str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB); $block = mcrypt_get_block_size('des', 'ecb'); $pad = ord($str[($len = strlen($str)) - 1]); return substr($str, 0, strlen($str) - $pad); }
值得一提的是:
如果說應用到url中id的這個場景,那么加密過后,是base64的編碼,建議再urlencode()
下,去除+號的影響。
PS:關于加密解密感興趣的朋友還可以參考本站在線工具:
文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password
在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php加密方法總結》、《PHP編碼與轉碼操作技巧匯總》、《PHP數(shù)學運算技巧總結》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數(shù)據(jù)結構與算法教程》、《php程序設計算法總結》及《php正則表達式用法總結》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
PHP異常Parse error: syntax error, unexpected T_VAR錯誤解決方法
在PHP中根本不需要使用var聲明的,但是當一個變量作為一個類的成員變量的時候,使用var還是沒有問題的2014-05-05php+redis在實際項目中HTTP 500: Internal Server Error故障排除
用戶量快速增長,訪問量在短時間內翻倍,由于前期容量規(guī)劃做得比較好,硬件資源可以支撐,可是軟件系統(tǒng)方面出現(xiàn)了大問題:40% 的請求都會返回 HTTP 500: Internal Server Error2017-02-02