在.NET中简单的RSA加密/解密可以通过使用System.Security.Cryptography
命名空间中的RSACryptoServiceProvider
类来实现。以下是一个简单的示例:
using System;
using System.Security.Cryptography;
public class RSAEncryption
{
public static void Main(string[] args)
{
string plainText = "Hello, World!";
string encryptedText = Encrypt(plainText);
string decryptedText = Decrypt(encryptedText);
Console.WriteLine("Original text: " + plainText);
Console.WriteLine("Encrypted text: " + encryptedText);
Console.WriteLine("Decrypted text: " + decryptedText);
}
public static string Encrypt(string text)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] encryptedBytes = rsa.Encrypt(System.Text.Encoding.UTF8.GetBytes(text), true);
return Convert.ToBase64String(encryptedBytes);
}
public static string Decrypt(string encryptedText)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] decryptedBytes = rsa.Decrypt(Convert.FromBase64String(encryptedText), true);
return System.Text.Encoding.UTF8.GetString(decryptedBytes);
}
}
在这个示例中,我们首先创建了一个名为RSAEncryption
的类,其中包含两个静态方法Encrypt
和Decrypt
,分别用于加密和解密文本。
在Main
方法中,我们首先定义了一个要加密的字符串plainText
,然后调用Encrypt
方法对其进行加密,并将结果存储在encryptedText
变量中。接下来,我们调用Decrypt
方法对加密后的文本进行解密,并将结果存储在decryptedText
变量中。最后,我们将原始文本、加密后的文本和解密后的文本分别输出到控制台。
Encrypt
方法接受一个字符串参数,并使用RSACryptoServiceProvider
类的Encrypt
方法对其进行加密。我们首先将要加密的文本转换为字节数组,然后使用Encrypt
方法对其进行加密。由于我们在加密时使用了true
标志,因此加密后的字节数组将包含OAEP填充。最后,我们将加密后的字节数组转换为Base64字符串,并将其返回。
Decrypt
方法与Encrypt
方法类似,但它使用RSACryptoServiceProvider
类的Decrypt
方法对加密的文本进行解密。我们首先将加密的Base64字符串转换为字节数组,然后使用Decrypt
方法对其进行解密。由于我们在解密时使用了true
标志,因此解密后的字节数组将包含OAEP填充。最后,我们将解密后的字节数组转换为字符串,并将其返回。
这个示例演示了如何在.NET中使用RSA加密和解密文本。请注意,这个示例仅用于演示目的,实际应用中可能需要使用更复杂的加密方法和更安全的密钥管理策略。
领取专属 10元无门槛券
手把手带您无忧上云