Python中使用passwd()函数实现密码加密和解密功能
发布时间:2023-12-17 10:29:42
在Python中,可以使用getpass模块的getpass()函数来实现密码的加密和解密功能。getpass()函数可以隐藏输入的密码字符,并且返回用户输入的密码。
以下是一个实现密码加密和解密功能的例子:
import getpass
import hashlib
def encrypt_password(password):
# 使用SHA256算法加密密码
password_hash = hashlib.sha256(password.encode()).hexdigest()
return password_hash
def verify_password(password, password_hash):
# 验证密码是否与加密后的密码一致
return hashlib.sha256(password.encode()).hexdigest() == password_hash
def get_encrypted_password():
password = getpass.getpass('Enter password: ')
password_hash = encrypt_password(password)
print('Encrypted password:', password_hash)
return password_hash
def verify_encrypted_password():
password = getpass.getpass('Enter password: ')
password_hash = input('Enter encrypted password: ')
if verify_password(password, password_hash):
print('Password is correct.')
else:
print('Password is incorrect.')
if __name__ == '__main__':
print('1. Encrypt password')
print('2. Verify password')
choice = input('Select an option: ')
if choice == '1':
get_encrypted_password()
elif choice == '2':
verify_encrypted_password()
else:
print('Invalid choice')
在这个例子中,encrypt_password()函数使用SHA256算法对密码进行加密,并返回加密后的密码字符串。verify_password()函数用于验证密码是否与加密后的密码一致,如果一致就返回True,否则返回False。
get_encrypted_password()函数使用getpass.getpass()函数获取用户输入的密码,并调用encrypt_password()函数对密码进行加密,然后打印加密后的密码字符串。
verify_encrypted_password()函数使用getpass.getpass()函数获取用户输入的密码,并使用input()函数获取加密后的密码字符串。然后调用verify_password()函数验证密码是否正确,并打印验证结果。
在if __name__ == '__main__':代码块中,用户可以选择对密码进行加密或验证操作。根据用户的选择,对应的函数将被调用。
执行以上代码后,可以看到如下输出:
1. Encrypt password 2. Verify password Select an option: 1 Enter password: Encrypted password: <加密后的密码字符串> 1. Encrypt password 2. Verify password Select an option: 2 Enter password: Enter encrypted password: <加密后的密码字符串> Password is correct.
注意:在正式的应用程序中,密码应当使用更加安全的算法进行加密,比如bcrypt或Argon2。这个例子中使用的SHA256算法只是一个示例。
