Python md5与sha1加密算法用法分析

作者:逆水寒 时间:2021-04-21 01:51:44 

本文实例讲述了Python md5与sha1加密算法。分享给大家供大家参考,具体如下:

MD5

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。

特性:

首先,它不可逆,没有系统的方法可以知道MD5码原来的文字是什么

其次,这个码具有高度的离散性,没有规律可循。哪怕原信息的一点点变化就会导致MD5的巨大变化,也可以说产生的MD5 码是不可预测的。

最后,由于这个码有128位那么长,所以任意信息之间具有相同MD5码的可能性非常之低,通常被认为是不可能的。

用途:

一般认为MD5码可以唯一地代表原信息的特征,通常用于密码的加密存储,数字签名,文件完整性验证等

SHA1

SHA1的全称是Secure Hash Algorithm(安全哈希算法) ,是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。

SHA-1比MD5多32位密文,所以更安全。由于同样的原因,MD5比SHA-1的运算速度更快。

用法实例:

Python中的hashlib模块是个专门提供hash算法的库,现在里面包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。用法如下:


import hashlib
hash_new = hashlib.sha1() #或hashlib.md5()
with open('driver.xml.tar.bz2','rb') as fp: #打开文件,一定要以二进制打开
 while True:
   data = fp.read() #读取文件块
   if not data: #直到读完文件
     break
   hash_new.update(data)
hash_value = hash_new.hexdigest() #生成40位(sha1)或32位(md5)的十六进制字符串
print hash_value

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode

MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

希望本文所述对大家Python程序设计有所帮助。

标签:Python,md5,sha1,加密算法
0
投稿

猜你喜欢

  • python中threading开启关闭线程操作

    2022-10-02 22:40:26
  • 三种Golang数组拷贝方式及性能分析详解

    2023-07-13 07:54:27
  • pygame编写音乐播放器的实现代码示例

    2021-08-12 18:08:48
  • 详解laravel安装使用Passport(Api认证)

    2023-11-19 02:08:54
  • html元素input使用方法

    2007-12-06 13:02:00
  • python 将字符串转换成字典dict的各种方式总结

    2022-06-28 21:13:35
  • Python一些基本的图像操作和处理总结

    2022-02-24 05:46:33
  • python 利用pywifi模块实现连接网络破解wifi密码实时监控网络

    2023-06-15 11:21:03
  • 通过模版字符串及JSON数据进行目标内容整理的一个小方法

    2010-01-12 16:55:00
  • Python面向对象类的继承实例详解

    2023-04-19 11:06:38
  • Python数据分析之缺失值检测与处理详解

    2021-10-04 01:09:08
  • python实现图书馆研习室自动预约功能

    2022-03-22 02:04:44
  • Python Django框架url反向解析实现动态生成对应的url链接示例

    2021-08-23 04:30:38
  • 举例区分Python中的浅复制与深复制

    2022-08-20 02:34:57
  • Python响应对象text属性乱码解决方案

    2023-07-31 13:06:41
  • 如何将你的应用迁移到Python3的三个步骤

    2022-03-17 08:59:48
  • 百度的图片轮换JS代码,支持FF

    2007-11-16 16:24:00
  • python序列类型种类详解

    2022-02-27 13:53:38
  • Python基于DFA算法实现内容敏感词过滤

    2023-07-25 20:14:11
  • Python类绑定方法及非绑定方法实例解析

    2022-08-10 11:36:38
  • asp之家 网络编程 m.aspxhome.com