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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
详解Python的单元测试
Apr 28 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
Python中easy_install 和 pip 的安装及使用
Jun 05 Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 Python
pyqt5 获取显示器的分辨率的方法
Jun 18 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
Python Pandas读取Excel日期数据的异常处理方法
Feb 28 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
漂亮但不安全的CTB
2006/10/09 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
php生出随机字符串
2017/07/06 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
python中pycurl库的用法实例
2014/09/30 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
简单了解django索引的相关知识
2019/07/17 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
见习期自我鉴定
2013/11/07 职场文书
求职信模版
2013/11/30 职场文书
应届毕业生应聘自荐信
2013/12/07 职场文书
技术经济专业求职信
2014/09/03 职场文书
合作协议书范本
2014/10/25 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL