0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python でパスワード作成

Last updated at Posted at 2021-03-04

Chromeで「パスワード生成」がでない

Webサービスによってはlogin画面の作りが凝りすぎていてChromeなどのパスワード作成機能が働かないことがあります。そういうときのコードです。

方針

  • argv でパスワードの長さ(plen) とスペシャルキャラクタ(spchr)を指定できるようにしたい。
  • 大文字小文字数字を混ぜて上記のspchrを入れさせたい。
  • stringからimportすればいいか
  • そうすると、random.sampleで必要な文字数をとってspchrをくっつけて random.shuffleすればよいかな
mkpasswd.py
#!/usr/bin/env python3
from sys import argv
from string import ascii_letters, digits
from random import shuffle, sample
def main():
  print("Usage %s <length> <spchars>\n$ %s 12 '-,' # length is 12, generated passwd contains '-' and ','"%(argv[0], argv[0]))
  plen, spchr = (12, '') # デフォルト値を設定
  try: plen = int(argv[1]) # argv[1]が数字なら置換
  except: pass
  try: spchr = argv[2] # argv[2]があれば置換
  except: pass

  lentotal = len(ascii_letters+digits+spchr)
  if plen > lentotal: plen = lentotal # plenが大きすぎるときは削る
  if plen <= len(spchr): plen = len(spchr) + 1 # plenが小さすぎるなら足す
  print("Generate length:%d, contains:[%s]"%(plen, spchr)) # 変更される可能性があるので表示してあげる

  pwd = sample(ascii_letters+digits, plen-len(spchr))+list(spchr)
  shuffle(pwd) # shuffleはインプレース置換
  print(''.join(pwd)) # printしておしまい
  return None
if __name__ == "__main__": main()

念の為ご注意

我ながら雑なコードですね。なお、spchrは__全て__出力されるパスワードで使われます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?