Base64でエンコードされた電子メールと圧縮

Base64でエンコードされた電子メールと圧縮

約2500文字のテキストと60KiBのPNGファイルが添付された電子メールを送信しました。テキストには数字185が8回含まれています。ただし、電子メールがbase64でエンコードされて送信された後、電子メールソースには3つの "MTg1"(base64エンコーディングでは "MTg1"は "185")の文字列しかありません。これをどのように説明しますか?電子メールヘッダーによると、コンテンツタイプは「text / plain; charset = UTF-8」で、コンテンツ転送エンコーディングは「base64」です。

ベストアンサー1

Base64エンコーディングは6バイトを8バイトに変換します。特定のプレーンテキストには3つの可能なエンコーディングがあり、一度に数ビットずつ移動します(他のエンコードされたテキストと混在するので、見つけるのは簡単ではありません)。

>>> '185'.encode('base64')
'MTg1\n'
>>> '\x00185'.encode('base64')
'ADE4NQ==\n'
>>> '\x00\x00185'.encode('base64')
'AAAxODU=\n'
>>> '\x00\x00\x00185'.encode('base64')
'AAAAMTg1\n'

おすすめ記事