base64コマンドを使って暗号化復号化っぽいことをしてみる
本を一冊読んだ程度しか知識のないセキュリティど素人がセキュリティ基礎として暗号化と復号化の概念を学ぶに当たりbase64コマンドを使用したものを勉強したのでまとめておこうと思います。
前回の記事はこちらです。
今回もEnvaderを教材として使用しました。
学ぶこと
暗号化復号化という言葉だけ知ってるけど実際どうやるの?って程度のことをbase64コマンドを使用して学びます。
Base64というのは
バイナリデータをテキストなどに置換える際に利用される変換方式です。64の文字が使用されます。
64種類の文字の内訳は以下の通りです。
大文字小文字の英字:52文字
数字:10文字
記号 + / :2文字
引用元:Base64について
余った部分を詰める(パディング)記号として=
が用いられます。
利用される場面としては、電子メールにバイナリファイルを添付する際にbase64形式に変換します。
暗号化と復号化
それでは仮想ターミナルで実際に試してみます。
echoコマンドの-nオプションは改行無しとするためのものです。パイプ(|)でつなぎ、base64コマンドを以下のように記述し実行します。
echo -n "hogehoge" | base64
aG9nZWhvZ2U=
という謎の文字列の出力を得ました。全く元の文字列が想像つきません。
これが暗号化・エンコードという作業になります。
次に復号化を試してみます。以下のコマンドを入力します。
echo -n "aG9nZWhvZ2U=" | base64 -d
hogehogeという出力結果を得ました。
Fileのエンコード・デコードも同様の記述で可能です。
#エンコード
base64 test.txt
#デコード
base64 -d test.txt
わざわざターミナルを使わずともエンコード・デコードしてくれるサイトもあります。
得た知識
base64コマンドを理解することができました。
文字列を変換することで可読性を無くすという暗号化を実際に手を動かして学ぶことが出来ました。また、それを復号するということも学びました。
前回に引き続きなんとなく暗号の仕組みがわかってきた気がします。
参考にしたサイト
Discussion