python MD5加密的示例


Posted in Python onOctober 19, 2020

什么是MD5

Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

生成MD5

# 方式一:
pwd = '123456'
# 生成MD5对象
md5 = hashlib.md5()
# 对数据加密
md5.update(pwd.encode('utf-8'))
# 获取密文
pwd = md5.hexdigest()
print(pwd)

#方式二:

pwd = '123456'
pwd = hashlib.md5(bytes(pwd,encoding = 'utf-8'))
print(pwd.hexdigest())



# 输出结果
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e

密码破解

https://www.cmd5.com/

MD5加盐值(SALT)

# MD5加盐值(SALT)


pwd = '123456'
# 生成MD5对象
md5 = hashlib.md5(b'~!@@#!#$DFDT@#$@#')
# 一下两种方式与上面效果等同
# md5 = hashlib.md5('~!@@#!#$DFDT@#$@#'.encode('utf-8'))
# md5 = hashlib.md5(bytes('~!@@#!#$DFDT@#$@#',encoding='utf-8'))
#

# 对数据加密
md5.update(pwd.encode('utf-8'))
# 获取密文
pwd = md5.hexdigest()
print(pwd)63e87e46fc935f18abb6b38bb0376fee

安全性会好一些。

python MD5加密的示例

实例

# FileName : md5_salt.py
# Author  : Adil
# DateTime : 2020/4/26 5:25 PM
# SoftWare : PyCharm


from random import Random
from hashlib import md5


# 获取由4位随机大小写字母、数字组成的salt值
def create_salt(length=4):
  salt = ''
  chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
  len_chars = len(chars) - 1
  random = Random()
  for i in range(length):
    # 每次从chars中随机取一位
    salt += chars[random.randint(0, len_chars)]
  return salt


# 获取原始密码+salt的md5值
def create_md5(pwd, salt):
  md5_obj = md5()
  md5_obj.update(pwd + salt)
  return md5_obj.hexdigest()


# 原始密码
pwd = '20141124'
# 随机生成4位salt
# salt = create_salt()
# d0ac42aa5c4d6b7a7783003b60eedf43
salt = create_salt()
# 加密后的密码
md5 = create_md5(bytes(pwd,encoding='utf-8'), bytes(salt,encoding='utf-8'))

print('[pwd]\n', pwd)
print('[salt]\n', salt)
print('[md5]\n', md5)

以上就是python MD5加密的示例的详细内容,更多关于python MD5加密的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python导入txt数据到mysql的方法
Apr 08 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
python3操作mysql数据库的方法
Jun 23 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
浅谈Python中的私有变量
Feb 28 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
Python3内置模块之base64编解码方法详解
Jul 13 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 Python
python Yaml、Json、Dict之间的转化
Oct 19 #Python
Python pip 常用命令汇总
Oct 19 #Python
Python环境使用OpenCV检测人脸实现教程
Oct 19 #Python
python Tornado框架的使用示例
Oct 19 #Python
python mock测试的示例
Oct 19 #Python
python 提高开发效率的5个小技巧
Oct 19 #Python
python 利用toapi库自动生成api
Oct 19 #Python
You might like
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
编写PHP的安全策略
2006/10/09 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
babel基本使用详解
2017/02/17 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
Python科学计算环境推荐——Anaconda
2014/06/30 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
详解python数据结构和算法
2019/04/18 Python
python之yield和Generator深入解析
2019/09/18 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
保护环境建议书作文400字
2015/09/14 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python