zoukankan      html  css  js  c++  java
  • 加密算法

    对称加密

    发送方和接收方使用同样的密钥。比如DES。

    好处:密文长度不受限制。

    缺点:不安全

    非对称加密:

    发送方使用公钥将内容加密,接收方使用私钥将内容解密,比如RSA。也可以发送方用私钥加密,接收方用公钥解密,这种情况只有一个公钥与私钥对应,应用于数字签名。

    好处:密文长度受限制(密文的长度和密钥的长度成正比)。

    缺点:相对对称加密比较安全。

    混合加密:

    集合了对称加密和非对称加密的优点。

    比如对称加密的密钥为A。非对称加密的公钥的密钥为B,私钥为C。

    发送方:用A对明文进行加密生成m,然后用B将A加密生成n,将m和n混合。

    接收方:拆分m和n,用C将n解密得到A,用A将m解密得到明文。

    数字签章:

    利用hash算法将明文生成固定长度的密文。

    数字签名:

    数字签名需要达到以下两个目的:

    1、对明文进行数字签名后不能被篡改
    2、不能否认已经签过的数字签名

    签名、解签过程:(说明:私钥m和公钥n是一对非对称加密密钥,并且一个私钥只有一个公钥与其对应)

    (1)发送方将明文A进行哈希得到h,将h用私钥m加密得到B,并将明文、B一起发送;
    (2)接收方将接收到的明文进行哈希后得到h1;
    (3)接收方用公钥n对B进行解密得到h2,如果能解密则就证明一定是发送方签过的,发送方不能否认(因为一个私钥m只对应一个公钥n);
    (4)将h1和h2进行对比,如果相同则表示没有被篡改;

    过程图:

    数字证书:是对公钥n的封装,其中包含了颁发者等信息

    数字签名应用:

    (1)https(验证服务端身份和不被篡改)
    比如访问百度网站
    通过用数字证书可以验证服务端的身份,以确定这就是百度发的
    通过对比原文的哈希值和用数字证书(公钥)解密后得到的内容,如果相等则说明没有被篡改
    (2)签电子合同

    HASH加密、MD5加密

  • 相关阅读:
    比较相同一个表中两个字段值
    thinkphp在原字段上面进行加减操作
    前端页面中语音提示
    LeetCode 47——全排列 II
    剑指 Offer——最小的 K 个数
    LeetCode 46——全排列
    LeetCode 103——二叉树的锯齿形层次遍历
    剑指 Offer——数组中的逆序对
    二维数组和指针
    Non-local Neural Networks
  • 原文地址:https://www.cnblogs.com/BonnieWss/p/11128930.html
Copyright © 2011-2022 走看看