版權聲明:原創文章歡迎轉載,不過要記得說明出處json
其實用到的就是異或加密,隨機生成key,異或兩次就能夠獲得原字符串。只要你的key不泄露,xor
加密是不能被解密的。雖說md5
名義上也是不能被技術解密,可是我知道'撞庫'仍是能夠解密的。數組
1.MD5加密字符串測試
$str = md5('password');
2.生成key編碼
/** * 獲取加密文本的key */ function getKey($count = 10) { $key = ''; $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $result = ''; for($i = 0; $i < $count; $i++) { $key = mt_rand(0, mb_strlen($str)); $result .= $str[$key]; } return $result; } $key = getKey(mb_strlen($str));
3.xor加密加密
/** * 異或加密 */ function xorString($str, $key = '') { if(empty($key)) { return $str; } $result= ''; for($i=0; $i < mb_strlen($str); $i++) { $result .= $str[$i] ^ $key[$i]; } return $result; } $result = xorString($str, $key);
4.xor還原spa
$str = xorString($result, $key);
5.升級code
有的時候不是加密密碼並且文本,須要解密後知道文本內容,這個時候就不能用md5第一步加密,只須要把文本轉爲json。它的密碼集是UTF-8編碼就避免漢字亂碼,並且也支持數組等。圖片
$str = json_encode('動手測試一下吧');