python 2,python 3におけるbase 64符号化復号
2214 ワード
Base 64符号化は「君子を防ぎ小人を防ぐ」符号化方式である.MIMEプロトコルに広く応用され、電子メールの伝送符号化として生成された符号化は可逆的であり、後の2ビットには「=」があり、生成された符号化はascii文字である可能性がある.の利点:速度が速く、ascii文字、肉眼では理解できない 欠点:符号化が比較的長く、非常に解読されやすく、非キー情報を暗号化する場合にのみ適用される
import base 64 s=「私は文字列です」a=base 64.b64encode(s) print a ztLKx9fWt/u0rg==
print base64.b 64 decode(a)私は文字列です
python 3は違います.なぜなら3.x中の文字はunicode符号化であり、b 64 encode関数のパラメータはbyteタイプであるため、先に符号化しなければならない.
結果は予想と少し異なり,YWJjcjM 0 cjM 0 NHI=を得るだけで,文字列はb’'に囲まれた.この时、きっと誰かが言ったに違いない.正則で取り出せばいい..急がないで...bはbyteの意味を表して、私达は更にbyteを変えて帰るだけでいいです...ソースコードは以下の通りです.
python 2でBase 64の符号化と復号化を行う
import base 64 s=「私は文字列です」a=base 64.b64encode(s) print a ztLKx9fWt/u0rg==
print base64.b 64 decode(a)私は文字列です
python 3は違います.なぜなら3.x中の文字はunicode符号化であり、b 64 encode関数のパラメータはbyteタイプであるため、先に符号化しなければならない.
import base64
encodestr = base64.b64encode('abcr34r344r'.encode('utf-8'))
print(encodestr)
b'YWJjcjM0cjM0NHI='
結果は予想と少し異なり,YWJjcjM 0 cjM 0 NHI=を得るだけで,文字列はb’'に囲まれた.この时、きっと誰かが言ったに違いない.正則で取り出せばいい..急がないで...bはbyteの意味を表して、私达は更にbyteを変えて帰るだけでいいです...ソースコードは以下の通りです.
import base64
encodestr = base64.b64encode('abcr34r344r'.encode('utf-8'))
print(str(encodestr,'utf-8'))
#
YWJjcjM0cjM0NHI=