Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import getpass
- import hashlib
- def login(username: str = None, password: str = None) -> None:
- if not username:
- username = input('username: ')
- if not password:
- password = getpass.getpass('password: ')
- if authenticate(username, password):
- print('ACCESS GRANTED')
- else:
- print('ACCESS DENIED')
- def authenticate(username: str, password: str) -> bool:
- try:
- stored_password_hash = get_password(username)
- except (FileNotFoundError, LookupError):
- return False
- h = hashlib.sha1()
- h.update(bytes(password,'utf-8'))
- password_hash = h.hexdigest()
- return stored_password_hash == password_hash
- def get_password(username: str) -> str:
- # if user exists, return user's stored password
- # else raise Exception (file not found or user does not exist)
- username = username.lower()
- passwd = open('passwd')
- for line in passwd:
- # trim the newline
- line = line[:-1]
- uname, pword = line.split(':')
- if username == uname:
- return pword
- raise LookupError('user does not exist')
- if __name__ == '__main__':
- argc = len(sys.argv)
- uname = sys.argv[1] if argc > 1 else None
- pword = sys.argv[2] if argc > 2 else None
- login(uname, pword)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement