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

 更新时间:2017年07月14日 09:49:33   作者:逆水寒  
这篇文章主要介绍了Python md5与sha1加密算法,简单介绍了md5级sha1加密算法的概念、原理,并结合实例形式分析了Python使用hashlib模块实现加密功能的具体操作技巧,需要的朋友可以参考下

本文实例讲述了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加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

  • 如何用用Python将地址标记在地图上

    如何用用Python将地址标记在地图上

    这篇文章主要介绍了如何用用Python将地址标记在地图上,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-02-02
  • Pandas 对Dataframe结构排序的实现方法

    Pandas 对Dataframe结构排序的实现方法

    下面小编就为大家分享一篇Pandas 对Dataframe结构排序的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • pytorch实现加载保存查看checkpoint文件

    pytorch实现加载保存查看checkpoint文件

    这篇文章主要介绍了pytorch实现加载保存查看checkpoint文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • python3 将阶乘改成函数形式进行调用的操作

    python3 将阶乘改成函数形式进行调用的操作

    这篇文章主要介绍了python3 将阶乘改成函数形式进行调用的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python中sleep函数用法实例分析

    python中sleep函数用法实例分析

    这篇文章主要介绍了python中sleep函数用法,实例分析了sleep函数的功能及使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Python中sys模块功能与用法实例详解

    Python中sys模块功能与用法实例详解

    这篇文章主要介绍了Python中sys模块功能与用法,结合实例形式详细分析了Python sys模块基本功能、原理、使用方法及操作注意事项,需要的朋友可以参考下
    2020-02-02
  • 用tensorflow构建线性回归模型的示例代码

    用tensorflow构建线性回归模型的示例代码

    本篇文章主要介绍了用tensorflow构建线性回归模型的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Python中实现堆排序算法

    Python中实现堆排序算法

    堆排序是一种强大的算法,用于在 Python 中对数组和列表进行排序, 它很受欢迎,因为它非常快,并且不像合并排序和快速排序那样占用任何额外空间,本篇文章将介绍堆排序算法在 Python 中的实现,感兴趣的朋友跟随小编一起看看吧
    2023-08-08
  • Python使用pyexecjs代码案例解析

    Python使用pyexecjs代码案例解析

    这篇文章主要介绍了Python使用pyexecjs代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Django 自定义权限管理系统详解(通过中间件认证)

    Django 自定义权限管理系统详解(通过中间件认证)

    这篇文章主要介绍了Django 自定义权限管理系统详解(通过中间件认证),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论