#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 '))