Linuxコマンド Base64(入力をBase64エンコード/デコードして出力する)
入力をBase64に変換(エンコード)、復元(デコード)するコマンド解説
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Base64
概要・使用方法
Base64は、64種類の文字の英数字で「A~Z」、「a~z」、「0~9」の文字と、「+」と「/」とパディング用として「=」の記号でデータを表現する文字列です。それ以外の文字を扱いことができない通信環境でマルチバイト文字やバイナリデータを扱うためのエンコード方式である。
これはMIMEに規定されていて7ビットしか扱うことができない電子メールで広く利用されている。この変換によって33%のデータ量が増加する。
書式
$ base64 [オプション] [ファイル名・・・]
利用例
- 電子メール:電子メールではSMTPなどの制約により、7ビット文字列以外をやり取りすることができない。そのため、添付ファイルやバイナリ形式のデータを送信するさいに標準的に利用されている。
- Basic認証:HTTPヘッダでは、特殊記号を使用することができないため、ユーザー名とパスワードをコロン(:)で区切ってBase64エンコードした文字列が用いられている。
- 電子掲示板:インターネット上の電子掲示板では、文字列以外のバイナリデータの書き込みが基本的にはできないため、画像やテキスト文書を圧縮したファイルの交換のため、この形式が使われることがある。
オプション
-d –decode | base64ファイルをデコードする |
-i –ignore-garbase | 英数字以外を無視する |
サンプル:エンコード
$ base64 /bin/ls > ls-base64
サンプル:デコード
$ base64 -d ls-base64
実行結果
[centos@xxx work]$ base64 /bin/ls > ls-base64 #←lsコマンドをエンコードする。
[centos@xxx work]$ ls -l
total 156
-rw-rw-r-- 1 centos centos 158876 May 18 02:53 ls-base64
[centos@xxx work]$ head -n 5 ls-base64
f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAJENAAAAAAABAAAAAAAAAAOjDAQAAAAAAAAAAAEAAOAAJ
AEAAHgAdAAYAAAAFAAAAQAAAAAAAAABAAEAAAAAAAEAAQAAAAAAA+AEAAAAAAAD4AQAAAAAAAAgA
AAAAAAAAAwAAAAQAAAA4AgAAAAAAADgCQAAAAAAAOAJAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAA
AAAAAAABAAAABQAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAIyVAQAAAAAAjJUBAAAAAAAAACAA
AAAAAAEAAAAGAAAAKKMBAAAAAAAoo2EAAAAAACijYQAAAAAA2BIAAAAAAAD4HwAAAAAAAAAAIAAA
[centos@xxx work]$ base64 -d ls-base64 > ls #←lsコマンドをデコードする。
[centos@xxx work]$ sha1sum ./ls /bin/ls #←元ファイルと同じことを確認
7a2f99a04c675db4daa4fde035121222d93f2c99 ./ls
7a2f99a04c675db4daa4fde035121222d93f2c99 /bin/ls
[centos@xxx work]$