一、对称加密

1.定义:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

2.常用的算法
(1)DES
(2)3DES(DESede、Triple-DES、DES-EDE)


注意:C#的填充模式是PKCS7, 对应Java的PKCS5Padding, 否则C#与Java相互加解密会失败

(3)AES

 

 

二、非对称加密

1.定义:非对称加密算法需要两个密钥:公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2.工作原理:
(1)A与B需要进行相互数据交换,A和B都要产生一对公钥和私钥。(公钥和私钥是成对出现密钥对,如果公钥和私钥任意一方发生变更,则加解密就会有误)。
(2)A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
(3)A要给B发送信息时,A用B的公钥对信息进行加密,B收到加密数据后,B用B的私钥进行解密。
(4)解密成功后
(5)B给A返回数据,B用A的公钥对返回数据进行加密,A收到加密数据后,A用A的私钥进行解密。

3.常用的算法有:
(1)RSA   


参考文档:https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html