系统安全之数据加密解密
1.为什么要进行数据加密?
若不对数据加密,难免在进程间通信时,会有第三者窃听甚至修改通信数据;因此为了更好的确保数据的机密性,完整性,需要对数据加密。
2.加密方案组成
加密算法及协议
加密密钥
3.常用的数据加密算法
1.对称加密算法:
特点:加密密钥和解密密钥相同(秘钥长度一般为56bits,128bits, 192bits, 256bits)
主流的加密算法
DES
3DES
AES
TWOFISH
....
其他特性:
1.对于一对通信主机,需要保证密钥的唯一性
2. 会对原始的数据分割成固定块大小逐个加密
3.加密和解密的速度非常快(加密密钥的长度比较短)
缺陷:
1.因为需要保证密钥的唯一性,当一台主机要和多台主机通信时,需要拥有大量的密钥
2.密钥需要一台主机发送给另一台主机,途中很难保证密钥安全,所以密钥分发困难
2.非对称的加密算法(也叫公钥加密算法)
特点:密钥不同;由私钥和用私钥抽取生成的公钥组成
私钥:由特定的工具生成,仅由使用者自己保存,需要保证一定的私密性(512bits, 1024bits, 2048bits, 4096bits, 8192bits, 16384bits)
公钥:由特定的工具,从私钥中抽取,抽取的其中不重要的一部分,可以公开
主流的加密算法
RSA:加密,数字签名;
DSA:数字签名算法;
Elgamal:
其他特性:
1.在加密和解密的时候,私钥加密的数据只能其对应的公钥才能解开,公钥加密的数据只能对应的私钥才能解开
2.私钥长度比较长,加密后的数据更安全
缺陷:
因为秘钥太长,加密数据会消耗较多的系统资源;所以很少用来加密大量数据
公钥加密的用途
1.密钥交换:发送方用接收方的公钥去加密自己的密钥,接收方收到后可以用自己的私钥解密
2.数字签名:用自己的私钥加密数据,然后将公钥发送给接收方,让接收方解密
单向加密算法
只能加密不能解密,又称为"数据指纹提取";数据指纹即数据的特征码;
主流的单向加密算法:
md5:Message Digest version 5,信息摘要算法第5版;
128bits定长输出;
sha系列:Security Hash Algorithm,安全的哈希算法;
sha-1:160bits定长输出;
sha224:224bits定长输出;
sha256:256bits
sha384:384bits
sha512:512bits
特性:
1.定长输出:无论加密的明文有多长,输出都是定长的
2.雪崩效应:若明文有一丝变化,其加密后内容,差别很大
4.如何在通信时加密数据,使通信更为安全?
1.发送方先用单向加密抽出数据中的一部分加密,得到结果称为特征码;同时用自己的私钥加密特征码
2.发送方用对称加密去加密数据;同时用接收方的公钥加密对称密钥
3.接收方用发送方的公钥解密特征码,认证发送方
4.接收方用自己的私钥解密对称密钥,随后用解密出来的密钥解密数据
5.收到数据后,再用单向加密获得特征码,与之前得到的特征码按位对比,确保数据信息的完整性
转载于:https://blog.51cto.com/wangchaode/2095140
系统安全之数据加密解密相关推荐
- 数据结构(哈夫曼树+KMP)之 数据加密+解密
数据结构(哈夫曼树+KMP)之 数据加密+解密 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> #define N 1 ...
- java数据加密解密代码_java使用RSA加密方式实现数据加密解密的代码
RSA的应用 RSA是一种非对称加密算法.现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密 java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥 测试代 ...
- java使用RSA加密方式实现数据加密解密
全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥 测试代码 public static void main(String arg ...
- RSA数据加密解密(各种语言)
RSA数据加密解密文档 增强数据传输与本地日志的数据安全 数据加密方式 使用rsa加密算法,客户端公钥加密,服务端私钥解密 (若单次传输数据量过大,之后可引入aes rsa只加密iv部分) 数据加密步 ...
- Python实现数据加密-解密
Python实现数据加密-解密 运行环境: OS:macOS Monterey Version 12.3.1(英文版) IDE:PyCharm 2020.1 1 . PyCryptodome库安装 ...
- 一种简单的,适合单片机的,数据加密解密方法,仅需要调用两个函数即可完成数据的加密解密
一种简单的,适合单片机的,数据加密解密方法,仅需要调用两个函数即可完成数据的加密解密 本人原创,源码可移步:https://gitee.com/demyli/easy-encrypt.git /*** ...
- 系统安全性之数据加密技术
数据加密的基本概念 数据加密技术的发展 直至进入20世纪60年代,由于电子技术和计算机技术的迅速发展,以及结构代数.可计算性理论学科研究成果的出现,才使密码学的研究走出困境而进入了一个新的发展时期:特 ...
- MyBatis 一个简单配置搞定数据加密解密!
欢迎关注方志朋的博客,回复"666"获面试宝典 前言:介绍一个简单的MyBatis加解密方式,日常学习工作中提及这种方法的比较少,所以拿来说说,如果已经知道这种方法的忽略本文! 一 ...
- 扔掉工具类,Mybatis一个简单配置搞定数据加密解密!
今日推荐 推荐 20 款 IDEA 主题!开源困境:Log4j2 维护者发声:没有工资,还要挨骂!!RedisJson 横空出世,性能碾压ES和Mongo!还在发愁写API文档?推荐一款阿里腾讯都在用 ...
- Android数据加密解密
最近项目在维护过程中,估计这一周都会没有什么事情做了.于是开始打量自己做完的这个项目,项目在展示方面乏善可陈,然后仔细的想了想,这个项目的亮点无非就在数据加密和解密这一块了.因为是银行的项目,所以对数 ...
最新文章
- 4、SpringBoot 配置和使用定时任务
- 学习记录2-Python中的注册器模块
- js define函数_聊聊JS模块化发展历程
- Java File类File [] listFiles()方法(带示例)
- 86-Spark2.2源码:RDD中WithScope是什么?
- 处理方块之间的连接线
- 通过朋友间推广APP,根本不可行
- 问题求解RK3288调ALC5640芯片遇到的问题,前部分硬件问题,后部分如见驱动问题。
- JavaScript实现百度坐标系、火星坐标系、WGS84坐标系的互相转换
- win10 游戏等应用打开时闪退解决方案
- 【Spring源码三千问】Advice、Advisor、Advised都是什么接口?
- 【无机纳米材料科研制图——Visio 0309】使用任意多边形工具描边出小鼠简图
- 前端知识大全 - 收藏集 - 掘金
- 基于Djiango的学生管理系统(含源代码)
- android系统优化启动时间(Google官方推荐)
- Latex 命令速查
- 《纳瓦尔宝典》笔记二——停止出卖时间后,如何才能有收入
- 郑大计算机应用基础试题及答案,郑州大学远程教育计算机应用基础在线测试题库.doc...
- tomcat集群部署
- php任务进程中的配置文件_PHP进程管理器php-fpm配置说明