[Python]ターミナルでログイン機能のみを作ってみる
1.ログイン機能
ターミナル上でユーザーidとパスワードを新規登録する機能と、ログインする機能のみを作りたいと思います。
2.コード
from hashlib import sha256
from getpass import getpass
class UserCertification:
def __init__(self):
self.user_list = []
self.user_info = {"user_id": "", "pass": ""}
#メッセージダイジェスト生成
def create_message_digest(self, user_id, password):
cat_info = user_id + password
cat_info_to_byte = cat_info.encode()
hash_obj = sha256()
hash_obj.update(cat_info_to_byte)
msg_digest = hash_obj.hexdigest()
return msg_digest
#ユーザー存在確認
def check_exists_user(self, input_user_id):
for user in self.user_list:
user_id = user["user_id"]
password = user["pass"]
if user_id == input_user_id:
return True
else:
return False
#ユーザー新規作成
def create_user(self, user_id, password):
password = self.create_message_digest(user_id, password)
if self.check_exists_user(user_id):
print("既にユーザーidが登録されています")
else:
self.user_info["user_id"] = user_id
self.user_info["pass"] = password
self.user_list.append(self.user_info)
#ログインチェック
def login(self, input_user_id, input_password):
check_password = self.create_message_digest(input_user_id, input_password)
check_user_id = input_user_id
for user in self.user_list:
user_id = user["user_id"]
password = user["pass"]
if check_user_id == user_id and check_password == password:
print("Success!")
return True
else:
print("Fail")
return False
def input_info():
user_id = input("ユーザーidを入力してください:")
password = getpass("パスワードを入力してください:")
return user_id, password
if __name__ == "__main__":
uc = UserCertification()
while True:
select_mode = int(input("0:新規登録/1:ログイン/2:終了"))
if select_mode == 0:
user_id, password = input_info()
uc.create_user(user_id, password)
elif select_mode == 1:
user_id, password = input_info()
uc.login(user_id, password)
elif select_mode == 2:
break
3.実行結果
0:新規登録/1:ログイン/2:終了0
ユーザーidを入力してください:nobi
パスワードを入力してください:
0:新規登録/1:ログイン/2:終了1
ユーザーidを入力してください:nobi
パスワードを入力してください:
Success!
0:新規登録/1:ログイン/2:終了1
ユーザーidを入力してください:nobi
パスワードを入力してください:
Fail
0:新規登録/1:ログイン/2:終了0
ユーザーidを入力してください:nobi
パスワードを入力してください:
既にユーザーidが登録されています
0:新規登録/1:ログイン/2:終了0
ユーザーidを入力してください:shizu
パスワードを入力してください:
0:新規登録/1:ログイン/2:終了1
ユーザーidを入力してください:shizu
パスワードを入力してください:
Fail
0:新規登録/1:ログイン/2:終了1
ユーザーidを入力してください:shizu
パスワードを入力してください:
Success!
この記事が気に入ったらサポートをしてみませんか?