+運動20200331

1、ログイン名とパスワードが暗号文に登録されている
インポートhashlib


デフ)(登録:
     ながら、 1 
        in_name = INPUT(' 登録アカウントを入力してください:' ).stripを()
        in_pwd = INPUT(' 登録用パスワードを入力してください:' ).strip()
        (R&LTで開く' aaa.txt '、MODE = ' RT '、=コード'UTF-8 ' :)AS F
             ため check_info におけるF:
                 IF。in_name check_info.strip ==()スプリット(' ' )[0 ]:
                     印刷' アカウントが既に存在して、再入力してください' BREAK 他にBREAK 
    ドングル = hashlib.md5(in_pwd.encode(' UTF-8。' ))
            
    in_pwd_hash = dongles.hexdigest()
    in_info = in_name + ' ' + in_pwd_hash + ' \ n ' 
    開く(R ' aaa.txt '、モード= ' '、=コード' UTF-8 ' )、Fとして:
        f.write(in_info)
    印刷' 成功登録は、以下の登録情報を保管してください:' を印刷' あなたの口座番号:{} ' .format(in_name))を
     印刷します' あなたのパスワード:{} ' .format(in_pwd))


デフログイン():
    タグ = 1
     一方、タグ:
        login_name = INPUT(ログインアカウントを入力してください:
        login_pwd = INPUT(' パスワードを入力してください:' 
        ドングル = hashlib.md5(login_pwd.encode(' UTF-8 ' ))
        login_pwd_hash = dongles.hexdigest()
        オープンと(R ' aaa.txt '、モード= ' RT '、=コード' UTF-8 ' )、Fとおり
             ため check_info F:
                check_info_list = check_info.strip()スプリット(' ' 場合のlogin_name == check_info_list [0]  login_pwd_hash == check_info_list [1 ]:
                     プリント' 用户{}登录成功' .format(のlogin_name))
                    タグ = 0
                     BREAK 
            印刷口座番号やパスワードが間違っている、再入力してください

 

2、ファイルの整合性チェック(大きなファイルを考えます)

輸入hashlib


デフmd5_check(in_content_path、check_content_hash):
    (in_content_path、モード開く = ' RB ' :Fなど)
        all_len = LEN(f.read())
        ドングル = hashlib.md5()
        f.seek(all_len 4 // 、0)
        dongles.update(f.read())
        f.seek(all_len 3 // 、0)
        dongles.update(f.read())
        f.seek(all_len 2 // 、0)
        dongles.update(f.read())
        in_content_hash = dongles.hexdigest()
         の場合 in_content_hash == check_content_hash:
             リターントゥルー
         リターン


オープンと(R ' bbb.jpg '、モード= ' RB ' )Fとして得ました:
    all_len = LEN(f.read())
    ドングル = hashlib.md5()
    f.seek(all_len 4 // 、0)
    dongles.update(f.read())
    f.seek(all_len 3 // 、0)
    dongles.update(f.read())
    f.seek(all_len 2 // 、0)
    dongles.update(f.read())
    check_content_hash = dongles.hexdigest()

RES = md5_check(R ' BBB -副本.JPG ' 、check_content_hash)
 プリント(RES)

 

JSONを達成するために、3、登録機能スイッチ

輸入JSON


デフ)(登録:
     ながら、 1 
        in_name = INPUT(' 登録アカウントを入力してください:' ).stripを()
        in_pwd = INPUT(' 登録用パスワードを入力してください:' ).strip()
        オープンと(R ' ccc.txt '、モード= ' RT '、=コード' UTF-8 ' )、Fとおり
             ため check_info F:
                check_info = json.loads(check_info)
                 IF in_name check_info.strip ==()スプリット(' ' )[0]:
                     印刷' アカウントが既に存在して、再入力してください' BREAK 
            他にBREAK 
    in_info = in_name + " " + in_pwd
    in_info = json.dumps(in_info)
    オープンと(R ' ccc.txt '、モード= ' '、コード= ' UTF-8 ' )、Fのように:
        f.write(in_info)
        f.write(' \ N- ' を印刷' 登録が成功し、以下の登録情報を保管してください:' を印刷' あなたの口座番号:{} ' .format(in_name))
     を印刷' あなたのパスワードを:{} ' .format(in_pwd))

 

4、プロジェクトの設定ファイルが解析されたのConfigParserです

インポートのConfigParser

コンフィグ = configparser.ConfigParser()
config.read(R ' ddd.ini ' プリント(config.sections())
 プリント(config.options(' セクション1 ' ))
 プリント(config.items(' セクション1 ' ))
 プリント(config.get(' セクション1 '' A1 ' ))
 プリント(config.getint(' セクション1 '' A1 ' ))
 プリント(config.getfloat(' セクション1 ''A2 "))
 プリント(config.getboolean(' セクション1 '' A3 '))

 

おすすめ

転載: www.cnblogs.com/caoyu080202201/p/12610107.html