本サイトはプロモーションを含みます。

パスワードを暗号化して安全なマクロを書く方法

パスワードをマクロファイルに直書きする事を避け、パスワードを暗号化して別ファイルに保存して読み出す方法について解説します。

 暗号化したパスワードをファイルに保存する

パスワードを暗号化してファイルに保存するためのTTLコマンドはsetpasswordです。このTTLコマンドにパスワードファイル、識別子、パスワードを引数で渡すと暗号化したパスワードを引数で渡したパスワードファイルに保存します。

psswdfile = 'パスワードファイル.dat'   ;パスワードファイル
ident = 'foo'                       ;識別子
passwd = 'password'                 ;パスワード

setpassword passwdfile ident passwd

識別子の選定は慎重に行いましょう。サンプルでは ‘foo’としていますが、単純にユーザー名やIPアドレス、ホスト名を識別子にすると複数のアカウントを登録した際に重複してしまい、意図した通りに動かない可能性があります。

ユーザー名とホスト名(IPアドレス)を組み合わせるなど、重複しない識別子にする事をおすすめします。

既存の識別子に対してsetpasswordを実行すると、暗号化されたパスワードは上書きされます。

重複を避ける方法

重複をさけるためにはispasswordを使います。ispasswordはTera Term 4.75から使う事ができるTTLコマンドで、パスワードファイル filenamepassword nameで指定した識別子が存在するかどうか調べます。

ispassword <filename> <password name>

存在する場合はシステム変数resultに1が格納され、存在しない場合はシステム変数resultに0が格納されます。

暗号化したパスワードの利用方法

暗号化されたパスワードが格納されたパスワードファイルから平文のパスワードを取り出す方法を紹介します。

psswdfile = 'パスワードファイル.dat'   ;パスワードファイル
ident = 'foo'                       ;識別子
passwd = ''                         ;パスワード

getpassword passwdfile ident passwd

パスワードを取り出すTTLコマンドはgetpasswordです。このTeraTermマクロを実行すると、パスワードファイルから識別子(foo)に対応したパスワードを復号化して変数(passwd)に格納します。