Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@nya3_neko2

初心者Pythonでパスワード管理をしよう※脆弱性しかないので使用厳禁

More than 1 year has passed since last update.

背景

親がパスワードを毎回忘れるので毎回リセットするのにいい加減腹がめんどくさいのでパスワード管理プログラムを作った
.exeで実行できるようにしたのでパスワードは実行して呼び出すように指導した
バッチファイルにしといた
.pyファイルいじらせるとめんどいことになるのでいじらせるのは.txtのみにした

内容

まずカレントディレクトリにpass_word.txtというファイルを作ります
とりあえず例で

pass_word.txt
※呼び出すキーワードとパスワードの間は:で区切る
mail:mail_pass
google:google_pass
facebook:facebook_pass

そして パスワードを呼び出すときのキーワード : パスワード という風に(上の例のように)1行ずつ.txtファイルに入力していきます
ここで重要なのは1行ずつで改行するということと、パスワードを呼び出すキーワードとパスワードの間に半角:をいれることです
パスワードを呼び出すときのキーワード、パスワードと:の間に空白を入れても別に問題ないです(正規表現でそれらは除外して認識しています)

ターミナルで

$python pass_mana.py パスワードを呼び出すときのキーワード 

と打ち込めばクリップボードにコピーされます

pass_mana.py
import os,sys,pyperclip,pathlib,re,pprint

def main():
    if len(sys.argv) != 2:sys.exit()
    need_pass = sys.argv[1]
    pass_txt = open('pass_word.txt')
    pass_txt = pass_txt.read()
    pass_txt=pass_txt.strip('※呼び出すキーワードとパスワードの間は:で区切る')
    pass_regex = re.compile(r'\s*(\S*)\s*:\s*(\S*)\s*\n*')
    pass_findall = pass_regex.findall(pass_txt)
    pass_dict = {}
    for pass_t in pass_findall:
        pass_dict.update({pass_t[0]:pass_t[1]})
    if need_pass in pass_dict:pyperclip.copy(pass_dict[need_pass])

if __name__ == '__main__':
    main()

注意

このプログラムは脆弱性しかないので使っちゃダメです

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
nya3_neko2
ますます数学

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?