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 16 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
python截取两个单词之间的内容方法
Dec 25 Python
Python中类的创建和实例化操作示例
Feb 27 Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
python 字典item与iteritems的区别详解
Apr 25 Python
python使用列表的最佳方案
Aug 12 Python
Python实现爬取网页中动态加载的数据
Aug 17 Python
详解KMP算法以及python如何实现
Sep 18 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
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
js拖拽功能实现代码解析
2016/11/28 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
用Python解决计数原理问题的方法
2016/08/04 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
python验证码图片处理(二值化)
2019/11/01 Python
Python中的__init__作用是什么
2020/06/09 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
预备党员思想汇报
2014/01/08 职场文书
书法比赛获奖感言
2014/02/10 职场文书
协议书模板
2014/04/23 职场文书
办理信用卡工作证明
2014/09/30 职场文书
部队个人年终总结
2015/03/02 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS