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学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
python中正则的使用指南
Dec 04 Python
python3解析库BeautifulSoup4的安装配置与基本用法
Jun 26 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
flask session组件的使用示例
Dec 25 Python
基于python历史天气采集的分析
Feb 14 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
Python 处理文件的几种方式
Aug 23 Python
python excel转换csv代码实例
Aug 26 Python
Pytorch之parameters的使用
Dec 31 Python
Python unittest discover批量执行代码实例
Sep 08 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 数组遍历顺序理解
2009/09/09 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
Vee-Validate的使用方法详解
2017/09/22 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python urls.py的三种配置写法实例详解
2017/04/28 Python
Python实现购物车购物小程序
2018/04/18 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
大学本科毕业生求职信范文
2013/12/18 职场文书
房屋出售授权委托书
2014/10/12 职场文书
银行求职信怎么写
2019/06/20 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers