如何使用 Python 实现 MD5 加盐加密
MD5 是一种常用的消息摘要算法,用于将任意长度的数据转换为一个固定长度的摘要输出。加盐是指在加密过程中加入一些随机字符串来增加加密的强度,防止被破解。下面是使用 Python 实现 MD5 加盐加密的示例代码:
import hashlib import random # 定义加盐函数 def create_salt(length=6): """ 生成随机字符串作为盐 """ salt_chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' salt = ''.join(random.choice(salt_chars) for _ in range(length)) return salt # 定义加密函数 def md5_with_salt(plain_text): """ 加盐 MD5 加密 """ salt = create_salt() plain_text_with_salt = plain_text + salt md5 = hashlib.md5() md5.update(plain_text_with_salt.encode('utf-8')) cipher_text = md5.hexdigest() return cipher_text, salt # 测试加密函数 if __name__ == '__main__': plain_text = 'pidancode.com' cipher_text, salt = md5_with_salt(plain_text) print(f'明文:{plain_text}') print(f'加盐密文:{cipher_text}') print(f'盐:{salt}') # 验证密文 plain_text_with_salt = plain_text + salt md5 = hashlib.md5() md5.update(plain_text_with_salt.encode('utf-8')) assert cipher_text == md5.hexdigest(), '密文验证失败'
上述代码中,create_salt() 函数用于生成随机的盐字符串,长度默认为 6。md5_with_salt() 函数接收一个明文字符串,将随机生成的盐与明文拼接后进行 MD5 加密,返回加密后的密文和盐字符串。name == 'main' 的部分用于测试加密函数,生成加盐后的密文,并验证密文是否正确。
相关文章