C# RSA RSACryptoServiceProvider 公钥加密
时间: 2024-09-23 10:06:12 浏览: 50
C# 中的 RSA(Rivest–Shamir–Adleman 算法)是一种非对称加密技术,它利用一对密钥(公钥和私钥)进行数据保护。RSACryptoServiceProvider 是 .NET Framework 提供的一个类,专门用于处理 RSA 加密解密操作。
在 C# 中,RSA 工作原理如下:
1. **公钥加密**:使用接收方的公钥对明文信息进行加密,这种加密只有持有对应私钥的人才能解密。在 `RSACryptoServiceProvider` 中,你可以使用 `.Encrypt()` 方法将明文消息转换成密文。
```csharp
using (var rsa = new RSACryptoServiceProvider())
{
string plaintext = "Hello, world!";
byte[] ciphertext = rsa.Encrypt(Encoding.UTF8.GetBytes(plaintext), false);
}
```
这里的 `false` 参数表示不需要使用 PKCS#1 v1.5 加盐填充,这是一个安全但较慢的过程。
2. **私钥解密**:只有拥有私钥的人,通过 `.Decrypt()` 方法可以将密文还原回原始的明文。
```csharp
byte[] decryptedText = rsa.Decrypt(ciphertext, true);
string decryptedMessage = Encoding.UTF8.GetString(decryptedText);
```
这里的 `true` 参数用于指定使用 PKCS#1 v1.5 解密。
阅读全文