zoukankan      html  css  js  c++  java
  • 数据加密

    目录

      0.加密算法简述

      1.数据完整性

      2.身份验证

      3.数据安全性

      4.数据传输抽象描述

    0.加密算法简述

      1)对称加密(AES)--->发送方与接收方都使用相同的密钥进行加密与解密;【速度快,效率高,但密钥管理困难,数据安全性完全依赖于密钥】

      2)非对称加密(RSA) --->公钥加密,私钥解密;私钥加密,公钥解密,   【安全性高,但速度慢】

    1.数据完整性

      当发送方发送数据之前,对其数据进行单向加密(md5,sha),保证数据的完整性,单向加密特点;

        1)定长输出(不管源数据有多大,输出的长度是固定的)

        2)源数据相同,通过相同加密算法(md5,sha)得到的结果一定相同

        2)雪崩效应(数据只要有一点修改,结果发生巨头变化)

        3)不可逆(不能通过结果推算出数据)

    2.身份验证

      发送方通过自己的私钥对数据的特征码(md5,sha的值)进行加密,保证发送方的合法性(身份验证)

    3.数据安全性

      1)发送方生成随机数对数据+单向加密的值+通过自己私钥加密的特征码进行加密,再通过接收方b的公钥加密加密(只有b的私钥进行解密),保证数据的安全性

      2)发送方a与接收方b通过IKE协议(互联网key交换)常用的协议(DH)   生成密钥对,对整个"数据+md5值+a的私钥加密的hash值"进行机密。

    4.数据传输抽象描述

    a---->b
    发送方:a
    1,a和b通过CA相互获取对方的公钥;
    2,a和b通过ike(DH)生成对称密钥--->'000';
    3,a发送的数据'data'通过md5生成特征码'123';
    4,a通过自己的私钥加密特征码'123'生成'456';
    5,a用对称密钥'000''data+123+456'进行加密生成'789'一起发送给b;
    5,a生成随机数'555'对整个数据'data'+'123'+'456'进行加密,再用b的公钥进行加密
    
    接收方:b
    1,b通过'000''789'进行解密得到'data+123+456'--->数据安全性
    2,b用a的公钥解密'456'得到的数字(如果是123)与 --->身份验证 
    b对'data'进行md5得到的值比较(如果是123),如果相同则认为数据是完整的。--->完整性 
    成功的背后都是汗水
  • 相关阅读:
    关于js原型链继承的一些复习
    echarts 柱状图
    js的属性监听
    改变input[type=range]的样式 动态滑动
    占位符 css
    JS简单实现:根据奖品权重计算中奖概率实现抽奖的方法
    layui navTree 动态渲染菜单组件介绍
    配置单机Kafka
    树莓派安装pip3以及扩展包的方法
    Gunicorn+Nginx+Flask项目部署
  • 原文地址:https://www.cnblogs.com/xiaofu89120/p/12531523.html
Copyright © 2011-2022 走看看