はじめに
パスワード生成やダミー文字列生成などで、ランダム文字列を生成する機会がたまにあります。しかし文字数や使用できる文字など、都度都度変わるもの。そこで、お手入れしやすいプログラムを作成してみました。
プログラム概要
高機能にするとメンテナンスが大変なので、パスワードに使える文字を指定してみランダムで選ぶようにしてみました。紛らわしい文字(i, l, o, I, O, 0, 1)は除外しています。また、文字数は引数で与えられるようにしました。
プログラムデプロイ
(binフォルダ作成 ディレクトリ~/binはなくとも、予めパスが通っていることが多い)
$ mkdir -p ~/bin
(プログラム本体)
$ cat << 'EOF' > ~/bin/strrand
#!/usr/bin/env python
import random
import sys
def validatearg():
try:
return int(sys.argv[1])
except:
sys.exit('Usage: strrand <length:integer>')
if __name__ == '__main__':
length = validatearg()
source = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'
strrand = ''
for i in range(length):
strrand += random.choice(source)
print strrand
EOF
(実行権限付与)
$ chmod a+x ~/bin/strrand
使い方
ディレクトリ~/binにパスが通っていると、一般的なプログラムのように実行することができます。
$ strrand 8
KhZvP5cs