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常见数据结构详解
Jul 24 Python
python超简单解决约瑟夫环问题
May 12 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
详解如何为eclipse安装合适版本的python插件pydev
Nov 04 Python
python采集微信公众号文章
Dec 20 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
pytorch masked_fill报错的解决
Feb 18 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 Python
python中 .npy文件的读写操作实例
Apr 14 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 5.3新增魔术方法__invoke概述
2014/07/23 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
express express-session的使用小结
2018/12/12 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
python显示生日是星期几的方法
2015/05/27 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
Linux的主要特性
2014/10/06 面试题
2013年大学生的自我鉴定
2013/10/24 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
百年校庆节目主持词
2014/03/27 职场文书
化学工程专业求职信
2014/08/10 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
骨干教师考核评语
2014/12/31 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
教师岗位说明书
2015/09/30 职场文书
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS