本文目录导读:

我来为你介绍Python中使用MD5加密文本的几种方法:
方法1:使用hashlib库(最常用)
import hashlib
def md5_encrypt(text):
"""MD5加密文本"""
# 创建md5对象
md5 = hashlib.md5()
# 更新要加密的内容(需要编码为bytes)
md5.update(text.encode('utf-8'))
# 获取十六进制格式的密文
return md5.hexdigest()
# 使用示例
text = "Hello, World!"
encrypted_text = md5_encrypt(text)
print(f"原文: {text}")
print(f"MD5密文: {encrypted_text}")
方法2:一行代码加密
import hashlib
text = "Hello, World!"
encrypted_text = hashlib.md5(text.encode('utf-8')).hexdigest()
print(f"MD5密文: {encrypted_text}")
方法3:带盐值加密(更安全)
import hashlib
def md5_with_salt(text, salt="my_salt"):
"""带盐值的MD5加密"""
# 将文本和盐值组合
text_with_salt = text + salt
md5 = hashlib.md5()
md5.update(text_with_salt.encode('utf-8'))
return md5.hexdigest()
# 使用示例
text = "Hello, World!"
encrypted = md5_with_salt(text)
print(f"原文: {text}")
print(f"带盐值MD5: {encrypted}")
方法4:多次加密(增加破解难度)
import hashlib
def md5_multiple_encrypt(text, times=3):
"""多次MD5加密"""
result = text
for _ in range(times):
result = hashlib.md5(result.encode('utf-8')).hexdigest()
return result
# 使用示例
text = "Hello, World!"
encrypted = md5_multiple_encrypt(text, 3)
print(f"3次MD5加密: {encrypted}")
完整示例:文件MD5校验
import hashlib
def get_file_md5(file_path):
"""计算文件的MD5值"""
md5 = hashlib.md5()
with open(file_path, 'rb') as f:
# 分块读取大文件
for chunk in iter(lambda: f.read(4096), b''):
md5.update(chunk)
return md5.hexdigest()
# 使用示例
def main():
# 1. 字符串加密
print("=== 字符串MD5加密 ===")
text = "Hello, Python加密!"
print(f"原文: {text}")
print(f"MD5: {hashlib.md5(text.encode()).hexdigest()}")
# 2. 验证密码
print("\n=== 密码验证 ===")
password = "mypassword123"
stored_hash = hashlib.md5(password.encode()).hexdigest()
input_password = "mypassword123"
input_hash = hashlib.md5(input_password.encode()).hexdigest()
if stored_hash == input_hash:
print("密码验证成功!")
else:
print("密码验证失败!")
# 3. 文件校验
print("\n=== 文件MD5校验 ===")
try:
file_md5 = get_file_md5("test.txt")
print(f"文件MD5: {file_md5}")
except FileNotFoundError:
print("文件不存在")
if __name__ == "__main__":
main()
注意事项
- MD5安全性:MD5已经不再安全,存在碰撞攻击,不建议用于密码存储
- 更好的选择:对于密码存储,建议使用:
- bcrypt
- SHA-256
- SHA-3
# 推荐的安全密码加密方式(使用bcrypt)
import bcrypt
def secure_hash_password(password):
"""安全的密码加密"""
# 生成盐值并加密
salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(password.encode('utf-8'), salt)
return hashed
def verify_password(password, hashed):
"""验证密码"""
return bcrypt.checkpw(password.encode('utf-8'), hashed)
# 使用示例
password = "mypassword123"
hashed = secure_hash_password(password)
print(f"安全加密后的密码: {hashed}")
# 验证
if verify_password(password, hashed):
print("密码验证成功!")
MD5现在主要用于文件完整性校验、数据指纹等场景,密码存储建议使用更安全的算法。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播