LoginSignup
7
12

More than 3 years have passed since last update.

コマンドプロンプトだけでBase64エンコードをする

Posted at

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でエンコードされた文字列です。

引き続き、コマンドを解説していきます。

コマンド解説

上記のコマンドは一行にまとまっていて便利ですが、少し読みづらいので、順番に説明します。

hogesrc.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

これでコマンドプロンプトの画面に、エンコードした文字列が表示されます!

さいごに

以下のページを参考にさせていただきました。ありがとうございました。

7
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
12