非对称加密
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
对称加密:
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
- 示例
我们现在有一个原文3要发送给B,设置密钥为108,3* 108 = 324,将324作为密文发送给B。B拿到密文324后,使用324/108= 3得到原文
- 常见加密算法
DES : Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级通信中使用,随后该算法在国际上广泛流传开来。
AES : Advanced Encryption Standard,高级加密标准.在密码学中又称Rijndael加密法,是美国联邦采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
- 特点
加密速度快,可以加密大文件
密文可逆,一旦密钥文件泄漏,就会导致数据暴露。加密后编码表找不到对应字符,出现乱码
一般结合Base使用
Des 加密
DES算法是属于对称密码算法中的分组加密算法。
- 算法步骤
- IP置换
按照一定的规则,将原来的位二进制位重新排序。
- 轮函数——E扩展置换
将32 位输⼊扩展为48位输出
可以理解为 将每部分的第一个和最后一个数取出交换后放到,原来数的前(后)面
- 轮函数–S盒压缩处理
经过扩展的48位明文和48位密钥进行异或运算后,再使用8个S盒压缩处理得到32位数据。将48位输入等分为8块,每块6位输入压缩为4位输出。
- 轮函数——P盒置换
与ip置换相同,根据p盒置换表进行置换
S盒置换再经过P盒置换。⾄此,⼀次轮函数操作完毕。
- 密钥生成
密钥为位,除去8位校验位,剩余56位参与运算。
按照交换规则,⽣成16个48位的轮密钥。
3 DES 加密
DES是一个经典的对称加密算法,但也缺陷明显,即56位的密钥安全性不足,已被证实可以在短时间内破解。为解决此问题,出现了3DES,也称Triple DES,3DES为DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。为了兼容普通的DES,3DES并没有直接使用 加密->加密->加密 的方式,而是采用了加密->解密->加密 的方式。
Des 加密java Api
加密过程
@Test
public voi