加密就是將一些字元轉換為另一個字串的過程,簡單的說就是把大門上鎖,並且只有你有開啟的鑰匙。作為一個程式員都應該有屬於自己的加密方式,目前最流行的密碼編譯演算法就是MD5()加密方式。但是在網站已經有了破解的軟體用起來也不是很安全。下面簡單的介紹一下自訂的加密函數。
| 代碼如下 |
|
| “/*加密*/ function addcoder($str) { $yuan = 'abA!c1dB#ef2@Cg$h%iD_3jkl^E:m}4n.o{&F*p)5q(G-r[sH]6tuIv7w+Jxy8z9K0'; $jia = 'zAy%0Bx+1C$wDv^Eu2-t3(F{sr&G4q_pH5*on6I)m:l7.Jk]j8K}ih@gf9#ed!cb[a'; if ( strlen($str) == 0) return false; for($i = 0;$i<strlen($str);$i++) { for($j = 0;$j<strlen($yuan);$j++) { if($str[$i]==$yuan[$j]) { $results.= $jia[$j]; break; } } } return $results; } /*解密*/ function removecoder($str) { $yuan = 'abA!c1dB#ef2@Cg$h%iD_3jkl^E:m}4n.o{&F*p)5q(G-r[sH]6tuIv7w+Jxy8z9K0'; $jia = 'zAy%0Bx+1C$wDv^Eu2-t3(F{sr&G4q_pH5*on6I)m:l7.Jk]j8K}ih@gf9#ed!cb[a'; If (strlen($str)==0) return false; for($i = 0;$i< strlen($str);$i++) { for($j = 0;$j<strlen($jia);$j++) { if($str[$i]==$jia[$j]) { $results .= $yuan[$j]; break; } } } return $results; } $str = "www.111cn.net"; echo "加密前:".$str."<br >"; $str1= addcoder($str); echo "加密後:".$str1."<br >"; $str2= removecoder($str1); echo "解密後:".$str2."<br >"; |
例子二,利用md5+base64_encode進行編輯處理。
| 代碼如下 |
|
| <?php //www.111cn.net function passport_encrypt($txt, $key) { srand((double)microtime() * 1000000); $encrypt_key = md5(rand(0, 32000)); $ctr = 0; $tmp = ''; for($i = 0;$i < strlen($txt); $i++) { $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]); } return base64_encode(passport_key($tmp, $key)); } function passport_decrypt($txt, $key) { $txt = passport_key(base64_decode($txt), $key); $tmp = ''; for($i = 0;$i < strlen($txt); $i++) { $md5 = $txt[$i]; $tmp .= $txt[++$i] ^ $md5; } return $tmp; } function passport_key($txt, $encrypt_key) { $encrypt_key = md5($encrypt_key); $ctr = 0; $tmp = ''; for($i = 0; $i < strlen($txt); $i++) { $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $txt[$i] ^ $encrypt_key[$ctr++]; } return $tmp; } ?> |