加密算法简介|SHA、MD5、AES、RSA的使用区别

加密算法简介

签名算法

  • 应用场景:检查报文正确性
  • 方案:从报文文本中生成报文摘要
  • 常用SHA或者MD5作为签名算法
  • 缺点:签名算法不是加密算法,不能用来加密,作用是检查篡改

对称加密算法

  • 应用场景:传递不适合明文传输的报文
  • 方案:如果用一个密码把消息加密,解密的时候还用这个密码,这种加密算法就是对称加密算法
  • 常用AES加密算法
  • 缺点:密码需要定期更新,带来密码安全传递问题

DH密钥交换算法

  • 应用场景:通信双方需要约定一个密码,但是又必须通过一个不安全的信道传递密码
  • 方案: 
    1. 发送方私有一个 a ,通过已知算法发送遗传信息 A
    2. 接收方私有一个 b ,通过已知算法发送遗传信息 B
    3. 发送方根据 a 和 B 通过算法计算出最终密码 C ,接收方根据 b 和 A 通过算法计算出最终密码 C
    4. 中间人只获取到 A B ,不足以计算出 C
  • 常用Diffie-Hellman密钥交换算法
  • 缺点:中间人攻击可破解 
     中间人攻击: 
    伪造接收方向发送方协商密码,根据 b’ ,发送 B’ ;伪造发送方向接收方协商密码,根据 a’ ,发送 A’ ;从而获得最终密码 C1’C2’

非对称加密

    • 应用场景:避免密钥交换流程
    • 方案:

      1. 发送方根据接收方的公钥,对原文进行加密;
      2. 接收方根据自己的私钥,对原文进行解密;
      3. 发送方会对原文摘要,根据自己的私钥,进行(加密)签名;
      4. 接收方会对原文解密后,根据发送方的公钥,进行(解密)验签;
      5. 发送方和接收方只需公开公钥,保护各自的私钥,无需向彼此发送秘钥;
      6. 中间人没有双方的私钥,无法解密报文,也无法伪造签名(报文);

      签名:对明文进行摘要后,使用秘钥对摘要进行加密,得到签名 
      验签:对签名使用秘钥进行解密,与明文的摘要对比,进行验签

    • 常用RSA非对称加密算法

    • 缺点: 
      • 需要事先生成公钥私钥对
      • 针对每个用户各自生成的一对公钥私钥,要对原文进行多次加密和签名
      • 计算量较大

posted on   sduSRZ  阅读(3578)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示