AutoHotkeyでパスワード生成

AutoHotkeyでパスワード生成

新しいパスワードが必要になった時に、ランダム生成してくれるサイトは結構あるが、いちいち検索なりブックマークから辿るのも面倒だと思ったので、AHKでサクッと生成してクリップボードにコピーできるようにした。

英数字の羅列から擬似乱数に従って文字を取得し、並べるだけ。シンプル設計なので「数字を必ず含める」とかはできないけど、数字、英小文字、英大文字をすべて含むパスワードのみ生成するよう修正。なので、念のため文字数が3未満の時は無限ループしないよう3文字で生成するようにした。

ツールチップで生成文字列を表示するようにしたので、気に入らなければ何度か生成し直せばいい。

;ランダムパスワード生成
#p::
  Char = 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  Num  = 10  ; パスワードの桁数
  Psw  = 
  While !(RegExMatch(Psw, "[0-9]") && RegExMatch(Psw, "[a-z]") && RegExMatch(Psw, "[A-Z]"))
  {
    Num := (Num < 3) ? 3 : Num
    Psw = 
    Loop, % Num
    {
      Random, Rdm, 1, StrLen(Char)
      Psw .= SubStr(Char, Rdm, 1)
    }
  }
  Clipboard = %Psw%
  AutoHideTooltip(Psw, 1500)
Return

;---ツールチップ自動消去関数---
AutoHideTooltip(Txt, Time, X="", Y="")
{
  Tooltip, %Txt%, %X%, %Y%
  SetTimer, AutoHide, -%Time%
  Return
  AutoHide:
    Tooltip, 
  Return
}