zoukankan      html  css  js  c++  java
  • 转:加密与解密

    加密算法简介

    签名算法

    • 应用场景:检查报文正确性
    • 方案:从报文文本中生成报文摘要
    • 常用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非对称加密算法

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

     附上原文链接:

    http://blog.csdn.net/u014628531/article/details/52665178

  • 相关阅读:
    【转】PG数据库高级用法 之 12306 -- 链接
    javascript实现浏览器管理员工具鼠标获取Html元素 并生成 xpath
    java图片识别 [Tesseract-OCR]
    MongoDB从环境搭建到代码编程(Window 环境)
    webDriver + Firefox 浏览器 完美兼容
    SQLServer 将日期改造成标准日期格式(如: 2016/6 ->201606)
    Angularjs+bootstrap 实现横向滑屏
    js数组长度
    Angularjs 跨域post数据到springmvc
    Oracle 18c 数据库中scott用户不存在的解决方法
  • 原文地址:https://www.cnblogs.com/tingxuelou/p/6760744.html
Copyright © 2011-2022 走看看