非对称加密算法和对称加密算法有些类似,只有少许不同。主要在于对密钥的管理上。对称加密算法只有一个密钥,而非对称加密算法有两个密钥:一个用来加密数据(公钥),一个用来解密数据(私钥)。公钥可以传递给任何想加密数据的人,而私钥只应由解密信息的人所拥有。
.NET Framework 只为实际的数据加密提供了 1 个非对称加密算法(RSA,记住,DSA 只用于数字签名),因此,创建这个工具并不需要包含一个用来选择加密算法的方法:
class AsymmetricEncryptionUtility
{
public static string GenerateKey(string targetFile){}
private static void ReadKey(RSACryptoServiceProvider algorithm , string keyFile){}
public static byte[] EncryptData(string data,string publicKey){}
public static string DecryptData(byte[] data,string keyFile){}
}