当前位置: 首页 > news >正文

速通python加密之SHA加密

SHA加密

SHA加密(Secure Hash Algorithm,安全散列算法)是一系列密码散列函数的统称,由美国国家安全局(NSA)设计,经美国国家标准与技术研究院(NIST)标准化,主要用于数据完整性校验、密码存储、数字签名等安全场景。其核心功能是将任意长度的输入数据转换为固定长度的哈希值(消息摘要),具有单向性和抗碰撞性(不同输入生成相同哈希值的概率极低)。

常见SHA算法版本及特点:

  1. SHA-1

    • 输出长度:160位(40个十六进制字符)。
    • 现状:因2005年被证明存在哈希碰撞漏洞(不同输入可生成相同哈希值),安全性不足,已被淘汰,不再用于安全敏感场景(如SSL证书、密码存储)。
  2. SHA-2系列
    包含SHA-224、SHA-256、SHA-384、SHA-512等,是目前应用最广泛的版本:

    • 输出长度:分别对应224位、256位、384位、512位(十六进制字符数为56、64、96、128位)。
    • 特点:抗碰撞性强,至今未被发现有效破解方法,安全性远高于MD5和SHA-1。
    • 应用:广泛用于密码存储(如用户密码哈希)、区块链(如比特币用SHA-256)、数字证书、文件校验等。
  3. SHA-3系列

    • 基于全新的“海绵结构”设计,与SHA-2算法原理不同,是NIST为应对潜在风险于2015年标准化的替代方案。
    • 输出长度与SHA-2对应版本一致(如SHA3-256、SHA3-512),兼容性更好,安全性同等可靠,但目前应用不如SHA-2普及。

SHA加密的核心特性:

  • 固定输出长度:不同版本输出长度固定(如SHA-256始终生成64位十六进制字符串)。
  • 单向性:无法从哈希值反推原始数据,哈希过程不可逆。
  • 抗修改性:原始数据微小改动会导致哈希值完全不同,可用于校验数据是否被篡改。

应用场景:

  • 密码存储:将用户密码转换为SHA哈希值后保存(常配合“盐值”增强安全性)。
  • 数据完整性校验:如软件安装包、文件传输后的哈希值比对,确认未被篡改。
  • 数字签名:与私钥结合生成签名,用于验证数据来源和完整性(如电子合同、区块链交易)。

示例:(注意,这里使用的是sha1)

"""
@File    :01SHA家军.py
@Editor  : 百年
"""
'''
sha1
sha256
sha512均为sha系列的
随着数字的增大复杂度也增加
sha系列也是hash散列摘要算法,写法几乎是和md5一致'''from hashlib import sha1  #也可以导入sha256等,下面的代码逻辑都是一致的#step1 创建加密对象
obj = sha1(b'liangnianbankunkun') #tips:加盐#step2 传入要加密的数据
obj.update('derder'.encode('utf-8'))#step3 输出结果
res = obj.hexdigest()print(res)# e6aaa600018a9e1b198b7529ce34d3f5f7cd184b

总之,SHA系列是目前主流的安全哈希算法,其中SHA-256因平衡了安全性和计算效率,成为最广泛应用的版本;SHA-3则作为备选方案,用于对算法多样性有更高要求的场景。

http://www.xdnf.cn/news/1193761.html

相关文章:

  • SpringBoot总结
  • 广东省省考备考(第五十七天7.26)——数量、言语(强化训练)
  • 如何做数据增强?
  • 大模型面试回答,介绍项目
  • 高性能网络DPDK、RDMA、XDP初探
  • URL与URI:互联网世界的“门牌号“与“身份证“
  • 网络编程2(应用层协议,传输层协议)
  • 「iOS」————继承链与对象的结构
  • SWC 深入全面讲解
  • 口腔助手|口腔挂号预约小程序|基于微信小程序的口腔门诊预约系统的设计与实现(源码+数据库+文档)
  • GitHub的免费账户的存储空间有多少?
  • 基于深度学习的图像分类:使用Capsule Networks实现高效分类
  • 网安-中间件-Redis未授权访问漏洞
  • 根本是什么
  • LeetCode 854:相似度为 K 的字符串
  • Flutter控件归纳总结
  • Jenkins运行pytest时指令失效的原因以及解决办法
  • useCallback/useMemo
  • 大模型蒸馏(distillation)---从DeepseekR1-1.5B到Qwen-2.5-1.5B蒸馏
  • ARM SMMUv3控制器注册过程分析(八)
  • 二分函数 lower_bound upper_bound
  • 21-ospf多区域
  • 【Bluedroid】btif_av_sink_execute_service之服务器禁用源码流程解析
  • Apache Doris Data Agent 解决方案:开启智能运维与数据治理新纪元
  • 2025年入局苹果Vision Pro开发:从零到发布的完整路线图
  • LeetCode 刷题【15. 三数之和】
  • 如何关闭Windows自动更新?【图文详解】win10/win11关闭自动更新
  • CentOS 7 安装 MySQL 8.4.6(二进制包)指南
  • Linux——线程同步
  • CT、IT、ICT 和 DICT区别