一,加密
(一)加密基础?
通过互联网发送数据,数据可能会被第三者恶意窃听,造成损失。因此需要给重要的数据进行加密,加密后的数据被称为“密文”。接收方通过解除加密或得原本的数据,把密文恢复为原本数据的操作叫做“解密”。像这样就减少了数据被恶意窃听的风险。
那么加密是怎么操作的呢?
首先计算机会使用1和0这两个数据表示二进制来管理所有数据。虽然数据有多种格式,图片,音频,视频,文档等,但在计算机中都是用二进制来表示。
对计算机来说,数据就是一串有意义的数字。
密文就是通过某种运算使得计算机无法解释的无规律数字。
加密运算用到的“密钥”,就是对数据进行数值运算,把数据变成第三者无法理解的形式的过程。
比如数据a是一串数据,通过“密钥”进行换算变成b,这样对于不知道计算过程的C来说,数据b就无法表示原来数据a的意思。原本a的二进制表示的数字是1,传输过程中却变成了数据b表示数字2,这样由于“密钥”和运算吧原本数据改变,防止第三方简单获取的方式就是加密。
a:01
b:10
“密钥”和运算:1和0互换
01 +“密钥”和运算 = 10
当然实际生产中用到的算法和密钥肯定不是这么简单的。
(二)加密数据算法
加密数据的方法可以分两种,加解密使用相同的密钥的“共享秘钥加密”和分别使用不同密钥的“公开密钥加密”
1,共享秘钥加密 - 对称加密
是什么?
加密解密都使用相同密钥的一种加密方式,由于使用密钥相同,所以也被称作“对称加密"。
实现原理
对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方
接收方收到加密后的报文后,结合解密算法使用相同密钥解密组合后得出原始数据。
实现算法
实现共享密钥加密算法的有凯撒密码,AES,DES,动态口令,其中AES应用场景最为广泛。
优缺点
优
效率高,算法简单,系统消耗小,适合加密大量数据。
缺
安全问题
由于使用了相同的秘钥进行加密和解密,一旦秘钥被第三方获取,所传输的信息将
不在安全。
因此需要把密钥安全的送出去,这就是“密钥分配问题”
2,公开密钥加密 - 非对称加密
是什么?
是指加密和解密分别使用不同的密钥的一种加密方法,也被成为“非对称加密”。加密用的密钥称为“公开密钥”,解密用的密钥称为:“私有密钥”。
实现原理
甲使用乙的公钥并结合相应的非对称算法将明文加密后发送给乙,并将密文发送给乙。
乙收到密文后,结合自己的私钥和非对称算法解密得到明文,得到最初的明文。
实现算法
实现公开加密算法有RAS算法,椭圆曲线加密算法等,最为广泛的是RSA算法。
优缺点
优:
1,安全性更高 :与共享密钥加密不同的是,公开密钥加密不会出现密钥分配问题。
缺:
1,复杂度高 :因为加密和解密用的是不同密钥,而且无法从一个密钥推导出另一个密钥,且公钥加密的信息只能用同一方的私钥进行解密。
2,解密加密比较耗时:非对称加密的缺点是算法非常复杂,导致加密大量数据所用的时间较长
3,公钥无法自证清白
“公开密钥”无法证明自己的身份,导致“公开密钥”可靠性出现问题。
例如:
正常情况下,A与B交互,A向B发送公钥,B通过A发来的公钥加密,A接收到密文后通过私钥解密。
异常情况:A与B交互,A向B发送公钥的过程中可以被C先截取A的公钥,然后C向B发出公钥,由于“公开密钥”无法自证清白,无法显示自己是由谁生成的,所以B不会发现接收到的“公开密钥”是谁C发送的。
在接下来的传输过程中,B通过C发送的“公开密钥”进行数据加密,会被C“私有密钥”解密后,然后通过A的“公开密钥”加密,在传输给A,A通过自己签发的“私有密钥”解密成功,也不会发现这中间出现了什么问题。
安全性的问题可以通过“数字证书”来解决,“数字证书”本身含有自身信息来表达身份,同时依赖认证中心的信任链条来保证安全性。
二,代码和实例
AES
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。,目前已被广泛应用。
RSA
RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制 。
RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥 。
备注:
代码实例在以下路径,JS和java的实例,用于前后端密码传输过程中的加解密。
链接:https://pan.baidu.com/s/1wNzBErch3dIa5sxGRiIdMQ 文章来源:https://www.toymoban.com/news/detail-464550.html
提取码:lvu4文章来源地址https://www.toymoban.com/news/detail-464550.html
到了这里,关于加密算法 AES和RSA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!