// basic64加密算法等价php函数base64_encode()
function encode_base64($str)
{
<wbr>$base64_alphabet = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/', '=');<br><wbr>$strlen = strlen($str);<br><wbr><br><wbr>for($i = 0; $i < $strlen; ++$i)<br><wbr>{<br><wbr><wbr>$asc = sprintf("%b", ord($str[$i]));</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr>// 补0<br><wbr><wbr>$as_len = 8 - strlen($asc);<br><wbr><wbr><br><wbr><wbr>for($j = 0; $j < $as_len; ++$j)<br><wbr><wbr><wbr>$asc = '0'.$asc;<br><wbr><wbr><br><wbr><wbr>$tmp1 .= $asc;<wbr><wbr><br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>$len1 = $strlen * 8;<br><wbr>$residue = $len1 % 6;<br><wbr>if($residue)<br><wbr><wbr>$len2 = 6 - $len1 % 6;<br><wbr>else<br><wbr><wbr>$len2 = 0;<br><wbr><wbr><br><wbr>$len3 = ($len1 + $len2) / 6;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>if($len2)<br><wbr>{<br><wbr><wbr>$tmp1 .= $len2 > 2 ? '0000' : '00';<br><wbr>}</wbr></wbr></wbr></wbr></wbr>
<wbr>for($i = 0; $i < $len3; ++$i)<br><wbr>{<br><wbr><wbr>$decode_str .= $base64_alphabet[bindec(substr($tmp1, $i * 6, 6))];<br><wbr>}<br><wbr><br><wbr>if($len2)<br><wbr>{<br><wbr><wbr>$decode_str .= $len2 > 2 ? '==' : '=';<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>return $decode_str;<br>}</wbr>
// basic64解密算法等价php函数base64_decode()
function decode_base64($str)
{
<wbr>$base64_alphabet = array('A' => 0, 'B' => 1, 'C' => 2, 'D' => 3, 'E' => 4, 'F' => 5, 'G' => 6, 'H' => 7,<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'I' => 8, 'J' => 9, 'K' => 10, 'L' => 11, 'M' => 12, 'N' => 13, 'O' => 14, 'P' => 15,<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'Q' => 16, 'R' => 17, 'S' => 18, 'T' => 19, 'U' => 20, 'V' => 21, 'W' => 22, 'X' => 23,<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'Y' => 24, 'Z' => 25, 'a' => 26, 'b' => 27, 'c' => 28, 'd' => 29, 'e' => 30, 'f' => 31,<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'g' => 32, 'h' => 33, 'i' => 34, 'j' => 35, 'k' => 36, 'l' => 37, 'm' => 38, 'n' => 39,<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'o' => 40, 'p' => 41, 'q' => 42, 'r' => 43, 's' => 44, 't' => 45, 'u' => 46, 'v' => 47,<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'w' => 48, 'x' => 49, 'y' => 50, 'z' => 51, '0' => 52, '1' => 53, '2' => 54, '3' => 55,<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>'4' => 56, '5' => 57, '6' => 58, '7' => 59, '8' => 60, '9' => 61, '+' => 62, '/' => 63, '=' => 64);<br><wbr>$strlen = strlen($str);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>for($i = 0; $i < $strlen; ++$i)<br><wbr>{<br><wbr><wbr>if($str[$i] == '=')<br><wbr><wbr><wbr>break;<br><wbr><wbr>else</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>{</wbr>
<wbr><wbr> if(!$tmpstr = $base64_alphabet[$str[$i]])</wbr></wbr>
<wbr> {</wbr>
<wbr><wbr><wbr><wbr> echo '传入的加密字符串非法。';</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr> exit();</wbr></wbr></wbr></wbr>
<wbr><wbr> }<br><wbr><wbr><wbr>$asc = sprintf("%b", $tmpstr);</wbr></wbr></wbr></wbr></wbr>
<wbr>}<br><wbr><wbr>$as_len = 6 - strlen($asc);<br><wbr><wbr><br><wbr><wbr>for($j = 0; $j < $as_len; ++$j)<br><wbr><wbr><wbr>$asc = '0'.$asc;<br><wbr><wbr><br><wbr><wbr>$tmp1 .= $asc;<wbr><wbr><br><wbr>}<br><wbr><br><wbr>$len = ceil(strlen($tmp1) / 8);<br><wbr><br><wbr>for($i = 0; $i < $len; ++$i)<br><wbr>{<br><wbr><wbr>$decode_str .= chr(bindec(substr($tmp1, $i * 8, 8)));<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>return $decode_str;<br>}</wbr>
字符串‘This is an encoded string’用第一个函数加密后得到‘VGhpcyBpcyBhbiBlbmNvZGVk<wbr>IHN0cmluZw==’用第2个函数解密就可以回到‘This is an encoded string’。</wbr>
他可以将任何字符串加密成只有字母和数字‘+’‘/’的组合,
呵呵,php里有现成的函数我有注明。但自己写的话,那是不一样的。只要把函数里的两个$base64_alphabet数组对应打乱,就可以得到自己特有的加密算法了,别人就不是那么容易解你的密了。要更秘密可以用嵌套加密,而且每次加密的$base64_alphabet数组都不一样。这样的加密,你试试解码给我看看!!!