



import secretsimport base64import hashlibimport binasciiimport uuid# 生成16字节的盐值def generate_salt():return secrets.token_bytes(16)# 对密码进行哈希处理,返回加密后的密文def hash_password(password_str, salt_byte):dk = hashlib.pbkdf2_hmac("sha256", password_str.encode("utf-8"), salt_byte, 10000)return binascii.hexlify(dk)# 对结果进行base64编码def encode_base64(data):return base64.b64encode(data).decode()# 密码加密和存储的主过程def encrypt_password(new_password):# 生成盐值salt = generate_salt()# 密码哈希加密password_hashed = hash_password(new_password, salt)# 编码密码和盐值为base64格式base64_password_hashed = encode_base64(password_hashed)base64_salt = encode_base64(salt)return base64_password_hashed, base64_salt# 模拟账户类class Account:def __init__(self, password, salt):self.password = passwordself.password_salt = salt# 测试用例,设置密码new_password = "Dasiwoba1" # 这里替换为你的密码# 获取加密后的密码和盐值encrypted_password, encrypted_salt = encrypt_password(new_password)# 创建账户对象,并存储加密信息account = Account(encrypted_password, encrypted_salt)# 输出加密结果print(uuid.uuid4())print("Encrypted Password (Base64):", account.password)print("Salt (Base64):", account.password_salt)










然后在数据库upload_file中去修改文件为需要读取的文件



