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中数据爬虫requests库使用方法详解
Feb 11 Python
在Python中定义一个常量的方法
Nov 10 Python
用python实现刷点击率的示例代码
Feb 21 Python
Python Pandas 箱线图的实现
Jul 23 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 Python
教你怎么用Python操作MySql数据库
May 31 Python
Python Django项目和应用的创建详解
Nov 27 Python
Python开发五子棋小游戏
Apr 28 Python
python基础之//、/与%的区别详解
Jun 10 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
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
PHP分页类集锦
2014/11/18 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
javascript函数库-集合框架
2007/04/27 Javascript
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
vue.js的提示组件
2017/03/02 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
解析Python中的异常处理
2015/04/28 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
分分钟入门python语言
2018/03/20 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
校园门卫岗位职责
2013/12/09 职场文书
物流专业求职计划书
2014/01/10 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
运动会演讲稿300字
2014/08/25 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书