php base 64符号化復号化手動実装

1680 ワード



base 64符号化原理
GB_2312文字セットは現在最もよく使われている漢字符号化基準である.この規格では、漢字毎に2バイトで表され、各バイトのascii符号は161−254(16進A 1−FE)であり、第1バイトはブロック符号の1−94領域に対応し、第2バイトはビット符号の1−94ビットに対応する.
漢字のunicode符号化範囲はu 4 e 00~u 94 a 5 UTF-8文字セット1漢字局3バイト:参照リンク
";
echo base64_decode($base);
echo "
"; $code = encode64($str); echo $code,"
"; echo $decode = decode64($code); function encode64($str){ $base64 = implode("",range('A','Z')).implode("",range('a','z')).implode("",range('0','9'))."+/"; if($str=="") return false; $binStr = StrToBin($str); $more = 0; $encodeStr = ""; for($i=0;$i 8 $binStr = substr($binStr,0,strlen($binStr)-$more*2); return BinToStr($binStr); } function StrToBin($str){ $arr = preg_split("/(? 0 && $mod < 8) $bin8 = str_repeat("0",$mod).$bin8; $binStr .= $bin8; } return $binStr; } function BinToStr($str){ $binArr = array();$index=0;$index2=0; for($i=0;$i$v){ $hex = base_convert($v, 2, 16); $v = pack("H".strlen($hex),$hex); $deArr[$k] = $v; } return join("",$deArr); }