« VirtualBoxに苦戦 (2) Main Gmailでの自身宛の送信メールの... »

xyzzyでmake-password

パスワードの単なるランダム選択での自動生成用のスクリプト(あとで見たらTclスクリプトだった…)を置いているサーバが動作していなかったので、手元のWindowsで動かしていたXyzzyのlispスクリプトですぐにできるだろうと思っていたら、リスト操作も忘れ、関数定義も忘れで思いのほか手こずってしまった…。

(defun make-password (&optional (n 7))
  (let
      (res (base "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"))
    (dotimes (i n)
      (setq res (append res (list (char base (random (length base)))))))
    (coerce res 'string)))

もっといい組み方もあるんでしょうけど。

使用例

(make-password 7)
"PMu7xrX"

リンク

Leave a comment

Your comment