常见的加密方式总结

摘要:
对称加密DESDES加密算法是一种分组密码,以64位组加密数据。其密钥长度为56位。加密和解密使用相同的算法。加密速度快,但安全性低。我们可以同时使用AES和RSA。当需要发布AES密钥时,需求方的公钥用于加密AES密钥,解密的AES密钥用于解密消息,这样我们就可以结合两种加密方法的优点。以base64格式编码无法作为字符串传输传输的数据格式。

对称加密

DES

DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法,加密速度快,但是容易破解安全性低。

3DES(Triple DES)

是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高,加强版DES。
(DES算法比较简单,容易破解已不建议使用)

AES(微信用的就是这种加密方式)

秘钥长度最长256bit,加解密速度快.AES标准用来替代原先的DES
优点:对称加密的优点是加解密速度快
缺点:发送方和接收方都需要知道唯一的秘钥,秘钥容易泄露

非对称加密

RSA(最常见)

对称加密,私钥加密公钥解密或相反,私钥可以推导出公钥反之不行
RSA加解密速度慢不适合频繁和大数据的加解密
还有一些其它场景常用的非对称加密

ECC椭圆曲线加密(区块链钱包中最常使用)

https://www.jianshu.com/p/d903ed65c5c4

DSA

带数字签名的算法
优点:不需要泄露私钥,安全性高
缺点:加解密计算量增大,速度慢
使用对称加密时需要将秘钥公布给对方,这样就存在安全隐患。而使用非对称加密则很消耗性能,速度慢,请求频繁和数据量大的场景不适合。
如何综合两者长处呢?
我们可以结合AES 和 RSA一起使用,当需要公布AES秘钥时使用需求方的公钥将AES秘钥加密,解密报文时使用解密出来的AES秘钥解密,这样就能综合两种加密方式的优势。
常见的加密方式总结第1张
B需要保证获取AES密码的是A,所以加密的必须是A的公钥,这样就只有A可以解密获得AES密码,其他人即使获取到了带AES秘钥的密文,因为缺少私钥也没有办法获取到密码

散列算法(hash算法)

md5(最常使用)

sha1,sha256(sha算法不同的版本)

SHA主要适用于数字签名标准里面定义的数字签名算法。是一种比MD5的安全性强的算法

hash算法因为其具有不可逆性,且输出长度固定。所以主要用于做摘要场景,也就是数字签名。
虽然都已经被破解https://zh.wikipedia.org/wiki/SHA-1
但是我们可以采用多遍无规则hash一样很难破解
或者在保存登陆密码的场景可以加盐值再hash

其它

base64

只是一种编码格式,主要用于编码http无法传输的数据格式。将无法传输的数据格式编码为base64格式的字符串传输。比如使用文本传输图片
aes+rsa使用
http://www.360doc.com/content/16/0606/15/12385684_565529546.shtml
非对称加密
https://blog.csdn.net/u014294681/article/details/86705999

免责声明:文章转载自《常见的加密方式总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇poj2349最小生成树prim算法【JavaWeb项目】一个众筹网站的开发(四)后台用户注册功能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Crypto++入门学习笔记(DES、AES、RSA、SHA-256)

最先附上下载地址 背景(只是个人感想,技术上不对后面的内容构成知识性障碍,可以skip): 最近,基于某些原因和需要,笔者需要去了解一下Crypto++库,然后对一些数据进行一些加密解密的操作。 笔者之前没接触过任何加密解密方面的知识(当然,把每个字符的ASCII值加1之流对明文进行加密的“趣事”还是干过的,当时还很乐在其中。),甚至一开始连Crypto+...

.NET 配置文件简单使用

.NET 配置文件简单使用   当我们开发系统的时候要把一部分设置提取到外部的时候,那么就要用到.NET的配置文件了。比如我的框架中使用哪个IOC容器需要可以灵活的选择,那我就需要把IOC容器的设置提取到配置文件中去配置。实现有几种方法。 1.使用appSettings 这个是最简单的可以设置和读取的用户设置 程序中可以用key去读取: string o...

最短路径算法(I)-Floyed、dijkstra

弗洛伊德算法(Floyed-Warshall) 适用范围及时间复杂度 该算法的时间复杂度为O(N^3),适用于出现负边权的情况。 可以求取最短路径或判断路径是否连通。可用于求最小环,比较两点之间的大小。 (什么??你不知道什么是负边权??戳->http://t.cn/Ef7pbu6) 核心思想 对于任意一个K点,i到j的距离有两种可能:要么经过k点,要...

HAProxy安装配置详解

简介 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可...

世界碰撞算法原理和总结(sat gjk)

序言     此文出于作者的想法,从各处文章和论文中,总结和设计项目中碰撞结构处理方法。如有其它见解,可以跟作者商讨。(杨子剑,zijian_yang@yeah.net)。 在一个世界中,有多个物体,物体可以分为运动的物体和静止的物体和地形。而世界是很宽广的,本文致力在处理物体之间的碰撞,地形的碰撞后续处理。 参考: KillerAery的文章 空间划分的...

【转】STM32: 一种计算CPU使用率的方法及其实现原理

1 前言出于性能方面的考虑,有的时候,我们希望知道CPU的使用率为多少,进而判断此CPU的负载情况和对于当前运行环境是否足够“胜任”。本文将介绍一种计算CPU占有率的方法以及其实现原理。2 移植算法2.1 算法简介此算法是基于操作系统的,理论上不限于任何操作系统,只要有任务调度就可以。本文将以FreeRTOST为例来介绍本算法的使用方法。本文所介绍的算法出...