欢迎访问宙启技术站
智能推送

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算法只是一个示例。