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实现方法
Nov 18 Python
Python中的ConfigParser模块使用详解
May 04 Python
深入源码解析Python中的对象与类型
Dec 11 Python
Python虚拟环境项目实例
Nov 20 Python
Python产生Gnuplot绘图数据的方法
Nov 09 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 Python
Python偏函数实现原理及应用
Nov 20 Python
flask框架中的cookie和session使用
Jan 31 Python
Python实现疫情地图可视化
Feb 05 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
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
Python中使用Inotify监控文件实例
2015/02/14 Python
详解Python中for循环的使用
2015/04/14 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
python实现周期方波信号频谱图
2018/07/21 Python
python实现两个文件夹的同步
2019/08/29 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
用Python 执行cmd命令
2020/12/18 Python
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
班组长的岗位职责
2013/12/09 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
正科级干部考察材料
2014/05/29 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python