CentOS 7からBase64にバイナリファイルをエンコードする正しい方法は何ですか?

CentOS 7からBase64にバイナリファイルをエンコードする正しい方法は何ですか?

私はbashシェルでCentOS 7を使用しています。 Base64でバイナリをエンコードするのは簡単だと思いました。

[rails@server lib]$ cat mybinary.file | base64 > /tmp/output.base64

ところでファイル長を見てみると4の倍数ではありませんでしたね。

[rails@server lib]$ ls -al /tmp/output.base64 
-rw-rw-r-- 1 rails rails 92935 May 31 15:50 /tmp/output.base64

私がしていることが有効なのかはわかりませんが、JSライブラリを使用してファイルをデコードしようとすると、文字列の長さが4の倍数ではないと文句を言うエラーが発生します。上記の操作が正しいか、他の方法がある場合です。

ベストアンサー1

$ echo foo |base64 
Zm9vCg==
$ echo foo |base64 |wc -c
9

出力の末尾の改行文字に注意してくださいbase64。これはここで9番目の文字です。

長い入力の場合、デフォルトでは76文字ごとに出力をラップするため、2行以上を生成します。base64 -w0出力を使用またはパイピングして、改行(最終的な改行を含む)を無効にすることができますtr -d '\n'

おすすめ記事