Base64 文字列から等号を削除しても問題ありませんか? 質問する

Base64 文字列から等号を削除しても問題ありませんか? 質問する

スペースを節約するために、base64 にエンコードする文字列があります。末尾の等号を削除しても問題はありませんか? これにより、エントロピーが大幅に減少しますか? 結果の文字列の長さが固定されるようにするにはどうすればよいですか?

>>> base64.b64encode(combined.digest(), altchars="AB")
'PeFC3irNFx8fuzwjAzAfEAup9cz6xujsf2gAIH2GdUM='

ありがとう。

ベストアンサー1

Base64 としてエンコードする必要がある 3 バイトごとに 4 つの ASCII 文字に変換され、エンコードされた文字が常に 4 の倍数になるように、結果に「=」文字が埋め込まれます。3 バイトの正確な倍数の場合は、等号は表示されません。1 つの予備バイトは、末尾に 2 つの「=」文字が付くことを意味します。2 つの予備バイトは、末尾に 1 つの「=」文字が付くことを意味します。文字列をデコードする方法によっては、これが有効な文字列として表示される場合と表示されない場合があります。お持ちのサンプル文字列ではデコードされませんが、私が試したいくつかの単純な文字列ではデコードされます。

base64 文字列とエンコード/デコードについてより深く理解するには、このページをお読みください。

http://www.nczonline.net/blog/2009/12/08/computer-science-in-javascript-base64-encoding/

出力文字列をチェックするために使用できる無料のオンラインエンコーダ/デコーダがあります。

おすすめ記事