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

发布时间 - 2026-01-11 02:20:02    点击率:

本文实例讲述了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./password/txt_encode

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

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

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

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

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

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


# Python  # md5  # sha1  # 加密算法  # 详解python实现可视化的MD5、sha256哈希加密小工具  # Python实现常见的几种加密算法(MD5  # SHA-1  # HMAC  # DES/AES  # RSA和ECC)  # python中的socket实现ftp客户端和服务器收发文件及md5加密文件  # python3 常见解密加密算法实例分析【base64、MD5等】  # python3中的md5加密实例  # Python使用MD5加密算法对字符串进行加密操作示例  # Python基于hashlib模块的文件MD5一致性加密验证示例  # Python MD5加密实例详解  # Python加密方法小结【md5  # base64  # sha1】  # python MD5加密的示例  # 加密工具  # 是一种  # 是由  # 感兴趣  # 加密解密  # 进阶  # 操作技巧  # 穷举  # 就会  # 是个  # 相关内容  # 还可以  # 可以说  # 而来  # 数据结构  # 给大家  # 更快  # 美国  # 一地  # 最先进 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用已有域名快速搭建网站?  Laravel怎么实现模型属性的自动加密  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  如何用美橙互联一键搭建多站合一网站?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  如何在VPS电脑上快速搭建网站?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  高防服务器租用如何选择配置与防御等级?  如何在香港服务器上快速搭建免备案网站?  如何彻底删除建站之星生成的Banner?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Python数据仓库与ETL构建实战_Airflow调度流程详解  Android使用GridView实现日历的简单功能  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何获取PHP WAP自助建站系统源码?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  深圳网站制作的公司有哪些,dido官方网站?  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  iOS UIView常见属性方法小结  如何用虚拟主机快速搭建网站?详细步骤解析  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  简单实现Android文件上传  Linux网络带宽限制_tc配置实践解析【教程】  如何快速生成凡客建站的专业级图册?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  深圳网站制作平台,深圳市做网站好的公司有哪些?  装修招标网站设计制作流程,装修招标流程?  Python函数文档自动校验_规范解析【教程】  如何在云虚拟主机上快速搭建个人网站?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  北京的网站制作公司有哪些,哪个视频网站最好?  jquery插件bootstrapValidator表单验证详解  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel如何实现用户密码重置功能?(完整流程代码)  如何快速搭建安全的FTP站点?  Laravel如何处理表单验证?(Requests代码示例)  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  JS中对数组元素进行增删改移的方法总结  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  如何在Windows环境下新建FTP站点并设置权限?