WindowsでBase64エンコードしたい
文字列をBase64でエンコードしたい時がたまにあります。
Windowsの場合、 certutil
コマンドを利用すれば、新たなソフトをインストールせずにコマンドプロンプトだけでエンコードすることができます。
certutil
に関する情報は多く見つかるのですが、意外とコマンドのみで完結する手順が記載されている記事が見当たらなかったため、忘れな内に書いてみます。
一行にまとめたコマンド
例えば、 hoge
という文字列をBase64でエンコードしたい場合、以下のコマンドを実行すればよいです。
echo hoge | more > %temp%\src.txt && certutil -f -encode %temp%\src.txt %temp%\dest.txt && type %temp%\dest.txt
これで、以下のような文字列が出力されます。
-----BEGIN CERTIFICATE-----
aG9nZSANCg0K
-----END CERTIFICATE-----
aG9nZSANCg0K
の部分が、Base64でエンコードされた文字列です。
引き続き、コマンドを解説していきます。
コマンド解説
上記のコマンドは一行にまとまっていて便利ですが、少し読みづらいので、順番に説明します。
hoge
を src.txt
に出力する
最初の処理はこちらです。
echo hoge | more > %temp%\src.txt
hoge
という文字列を src.txt
というファイルに書き込んでいます。
%temp%
は一時ディレクトリです。Windows 10 の場合、 C:\Users\ユーザー名\AppData\Local\Temp
になります。
今回の src.txt
のように、使い捨てのファイルを書き出したりするときに、よく使います。
src.txt
をエンコードして dest.txt
を生成する
次に、 src.txt
をBase64でエンコードして dest.txt
を生成します。
certutil -f -encode %temp%\src.txt %temp%\dest.txt
certutil
はテキストファイルをBase64でエンコードするコマンドです。
以下のサイトを参考にしました。
WindowsでBase64エンコード/デコードする方法
この段階で dest.txt
には以下の文字列が書き込まれています。
-----BEGIN CERTIFICATE-----
aG9nZSANCg0K
-----END CERTIFICATE-----
dest.txt
の内容を表示する
最後に、 dest.txt
の内容を標準出力します。
type %temp%\dest.txt
これでコマンドプロンプトの画面に、エンコードした文字列が表示されます!
さいごに
以下のページを参考にさせていただきました。ありがとうございました。