python 2,python 3におけるbase 64符号化復号

2214 ワード

Base 64符号化は「君子を防ぎ小人を防ぐ」符号化方式である.MIMEプロトコルに広く応用され、電子メールの伝送符号化として生成された符号化は可逆的であり、後の2ビットには「=」があり、生成された符号化はascii文字である可能性がある.
  • の利点:速度が速く、ascii文字、肉眼では理解できない
  • 欠点:符号化が比較的長く、非常に解読されやすく、非キー情報を暗号化する場合にのみ適用される
  • 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=