Python MD5加密算法脚本
基本概念
MD5(Message Digest Algorithm 5)是一种常用的哈希函数,用于将任意长度的数据转换为固定长度的哈希值,通常为128位(16字节)。
特点
- 不可逆性:无法从哈希值还原出原始数据。无论原始数据大小是多少,其生成的哈希值的长度都是固定的。
- 唯一性:不同的输入数据通常会生成不同的哈希值。即使原始数据只有微小的变化,其生成的哈希值也会有较大的差异。
- 快速计算:MD5算法的计算速度很快,对于大多数输入数据,可以在短时间内生成哈希值。
应用
MD5算法广泛应用于数据完整性校验、数据重复性校验、密码存储、数字签名等领域。
在数据完整性校验中,可以将原始数据进行MD5哈希计算,并将生成的哈希值与预期的哈希值进行比较,以验证数据是否被篡改。
在数据重复性校验中,如果有多个字段需要校验数据是否重复,则可以将数据库-表的字段通过CONCAT()函数进行拼接,再进行MD5哈希计算,将生成后的哈希值再进行group by去重。
在密码存储中,可以对用户的密码进行MD5哈希计算,并将哈希值加盐计算后存储在数据库中,而不存储原始密码,以增加密码的安全性。
缺点
由于MD5算法存在一些安全性上的问题,如碰撞攻击(collision attack),使得相同的哈希值可以从不同的输入数据中生成,因此在一些安全性要求较高的场景中,建议使用更安全的哈希算法,如SHA-256。
加密代码
# -*- coding:utf-8 -*-
# @File:test_MD5_encrypt.py
# @Date:2025/5/21 22:41
# @Author:wayne
# @description:MD5加密import hashlibdef md5_encrypt(text):"""MD5加密方法,步骤:1. 创建一个MD5的对象2. 将text的编码格式改为utf-8并更新MD5对象3. 返回十六进制的MD5散列值:param text: 原始字符串:return: MD5加密后的字符串"""# md5 = hashlib.md5()# md5.update(text.encode('utf-8'))# encrypt_text = md5.hexdigest()# 一行代码表示encrypt_text = hashlib.md5(text.encode('utf-8')).hexdigest()return encrypt_textif __name__ == '__main__':print(md5_encrypt("123456"))