AES 256加密:如何生成和使用公钥和私钥.net

关于AES 256加密:

  • 什么是公钥和私钥?
  • 如何生成这两个密钥?
  • 如何使用公众加密数据?
  • 如何使用私有解密数据?

回答:

在.Net中,您可以这样创建密钥对:

public static Tuple<string, string> CreateKeyPair()

{

CspParameters cspParams = new CspParameters { ProviderType = 1 };

RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(1024, cspParams);

string publicKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(false));

string privateKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(true));

return new Tuple<string, string>(privateKey, publicKey);

}

然后,您可以使用公共密钥对消息进行加密,如下所示:

public static byte[] Encrypt(string publicKey, string data)

{

CspParameters cspParams = new CspParameters { ProviderType = 1 };

RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(cspParams);

rsaProvider.ImportCspBlob(Convert.FromBase64String(publicKey));

byte[] plainBytes = Encoding.UTF8.GetBytes(data);

byte[] encryptedBytes = rsaProvider.Encrypt(plainBytes, false);

return encryptedBytes;

}

并使用私钥像这样解密:

public static string Decrypt(string privateKey, byte[] encryptedBytes)

{

CspParameters cspParams = new CspParameters { ProviderType = 1 };

RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(cspParams);

rsaProvider.ImportCspBlob(Convert.FromBase64String(privateKey));

byte[] plainBytes = rsaProvider.Decrypt(encryptedBytes, false);

string plainText = Encoding.UTF8.GetString(plainBytes, 0, plainBytes.Length);

return plainText;

}

以上是 AES 256加密:如何生成和使用公钥和私钥.net 的全部内容, 来源链接: utcz.com/qa/404645.html

回到顶部