zoukankan      html  css  js  c++  java
  • 数字摘要、数字签名和加密算法

     1、加密算法:对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码

    • 对称加密:加密和解密使用同一个密钥
    • 非对称加密:加密和解密所使用的不是同一个密钥,通常称为“公钥”和“私钥”,公钥和私钥可以互相解密
      • 签名时,使用私钥加密,公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改.但是不用来保证内容不被他人获得,保证了数据的唯一性。
      • 加密时,用公钥加密,私钥解密,用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得,保证了数据的安全性。

    2、数字签名: 非对称加密算法与数字摘要技术的应用 

          非对称密钥加密: RSAECC等,依赖密钥长度来提高安全性,

          数字摘要:将任意长度的消息变成固定长度的短消息, 常用的加密算法包括 HASH (MD5 SHA1 、SHA256HMAC(HmacMD5/HmacSHA1/HmacSHA256)等,安全性按颜色区分红色安全性高,绿色安全性高

    3、一般使用过程: 

          环境:A 的 公钥公开,私钥保密 ,同理B一样 ,A 和 B都使用同样的摘要算法 HASH

    • A 给 B  发送一段数据 data ,首先 A 使用 HASH 算法生成 data 的数字摘要 digestA ,然后利用 A  的私钥对数字摘要 digestA 进行加密生成 digestEncodeA ,然后将 data 和 digestEncodeA 一起发送给 B
    • B 收到 A 发过来的 data 和 digestEncodeA 以后,首先使用 HASH 算法生成 data 的数字摘要 digestB ,然后用 A的公钥对 digestEncodeA 进行解密得到数字摘要 digestDecodeB,然后如果  digestB  =  digestDecodeB ,那么标明data 是由A发送过来的 ,否则不是

         同理,B 如果要发送回执,就在循环执行上面的步骤即可

    4、总结:  数字摘要验证了原文是否被篡改、公钥私钥保证了数字摘要的安全性,两者配合使用安全性高,速度快 

  • 相关阅读:
    PAT 1097. Deduplication on a Linked List (链表)
    PAT 1096. Consecutive Factors
    PAT 1095. Cars on Campus
    PAT 1094. The Largest Generation (层级遍历)
    PAT 1093. Count PAT's
    PAT 1092. To Buy or Not to Buy
    PAT 1091. Acute Stroke (bfs)
    CSS:word-wrap/overflow/transition
    node-webkit中的requirejs报错问题:path must be a string error in Require.js
    script加载之defer和async
  • 原文地址:https://www.cnblogs.com/hack132/p/7126969.html
Copyright © 2011-2022 走看看