做一下简单的介绍
对称加密:加密和解密都是用同一个密钥的算法。
例如:A选择了一中加密规则进行加密,则B也需要使用同一种加密规则进行解密。
非对称加密:加密和解密需要不同的密钥。
例如:A生成了公钥和私钥(用于解密),B拿到公钥进行加密并将数据传送回A,A用私钥进行解密。
//下面是关于RSA非对称加密的示例代码
string password = "Password1";
//加密解密用到的公钥与私钥
RSACryptoServiceProvider oRSA = new RSACryptoServiceProvider();
//私钥
string privatekey = oRSA.ToXmlString(true);
//公钥
string publickey = oRSA.ToXmlString(false);
//需要加密的数据
byte[] messagebytes = Encoding.UTF8.GetBytes(password);
//公钥加密
RSACryptoServiceProvider oRSA1 = new RSACryptoServiceProvider();
oRSA1.FromXmlString(publickey); //导入公钥
byte[] AOutput = oRSA1.Encrypt(messagebytes, false); //AOutput 加密以后的数据
//私钥解密
RSACryptoServiceProvider oRSA2 = new RSACryptoServiceProvider();
oRSA2.FromXmlString(privatekey);
byte[] AInput = oRSA2.Decrypt(AOutput, false);
string reslut = Encoding.ASCII.GetString(AInput);