namdicul's blog

気ままに更新します. CTFと暗号理論について勉強中です.

uuencodeというものに出会ったので一応簡単にまとめた

uuencodeとは

uuencodeは, バイナリデータをテキストデータに変換するUNIX及びUnix系OSのコマンドのことを指します. 今でも多くのメーラに対応していますが, 一般的にはbase64が使用されていることが多いです.

初期のUnix系OSではUUCPと呼ばれるプロトコルで電子メールやネットニュースの配送が行なわれましたが, これらはテキストデータしか扱えないため, バイナリファイルをテキストデータに変換して送る手法としてuuencodeが提供されるようになりました. また, デコードする際にはuudecodeを使用します.

uuencodeのフォーマットは以下のようになっています.

begin 666 <data>
51DQ!1U]&94QG4#-3:4%797I74$AU
 
end

ヘッダ部分は「begin < mode > < decode_pathname >」のようになっています. < mode >は3桁の8進数であり, UNIXパーミッションを表します.< decode_pathname >は, デコードした際のファイル名になります.

コマンド

unix系では以下のコマンドを使用してエンコード(バイナリからテキスト)できます.

uuencode [出力ファイル名] < [入力ファイル] > [出力ファイル名]


デコード(テキストからバイナリ)するときは以下のコマンドを使用します.

uudecode [入力ファイル名]