令和という時代になっても、時折「添付のzipファイルにパスワードをかけて送れ」という古の儀式が発生します。
その度にいい感じのパスワードを考えたりするのが面倒だったので、面倒なことはpythonにやらせろという諺に従って適当に調べて書いてみた備忘録になります。
では、始めます。
・ランダムな文字列を作成するソースコード
結論から言うと以下のソースコードでできます。
・createRandomString.py
# # ランダムな文字列を作成する # import sys import random import string # 引数の桁数だけランダムな文字列を作成する関数 def create_random_string(n): # string.ascii_letters:アルファベット(小文字・大文字含む) # string.digits:数字 # string.punctuation:ASCII 文字の記号 return ''.join(random.choices(string.ascii_letters + string.digits + string.punctuation, k=n)) if __name__ == "__main__": args = sys.argv if len(args) == 2 and str(args[1]).isdigit(): print(create_random_string(int(args[1]))) else: print("引数に桁数の数字を設定して実行してください。")
使い方としては、上記ファイル実行時に引数に桁数の数字を入力した状態で実行すると、その桁数のランダムな文字列を返してくれます。
以上がpythonを使ってランダムな文字列を作成するソースコードになります。
確率的にアルファベットだけになったり、同じ記号や文字が繰り返し出現したりなどはありますが、その場合は一文字ずつチェックするような処理を入れたりすると良いかと思います。
またそれぐらいであればわざわざチェック処理を入れなくても良さげな文字列が出るまで繰り返し実行する方が楽そうです。
そもそも古の儀式自体がもう…というのはありますが…。
・参考資料