C# SM2 公钥 加密123
时间: 2024-10-20 13:16:49 浏览: 42
基于C语言、Miracl大数库以及sm3杂凑算法,实现sm2公钥密码的加解密算法.zip
SM2是中国国家密码管理局推荐的一种非对称加密算法,它是SM标准系列的一部分,主要用于网络通信安全。在C#中使用SM2进行公钥加密操作,首先你需要导入相应的加密库,如`System.Security.Cryptography.SM2`。
以下是基本步骤:
1. **生成密钥对**:
- 使用`SM2.GenerateKeyPair()`方法生成一对SM2密钥对,包括公钥和私钥。
```csharp
using System.Security.Cryptography;
...
var keyPair = SM2.GenerateKeyPair();
public Sm2PublicKey publicKey = keyPair.Public;
private Sm2PrivateKey privateKey = keyPair.Private;
```
2. **加密数据**:
- 对字符串"123"使用公钥进行加密,通常会先将其转换为字节数组(Base64编码的字符串)。
```csharp
byte[] plaintextBytes = Encoding.UTF8.GetBytes("123");
byte[] ciphertextBytes = publicKey.Encrypt(plaintextBytes);
string encryptedStr = Convert.ToBase64String(ciphertextBytes);
```
3. **解密数据**:
- 接收者使用对应的私钥解密收到的密文。
```csharp
byte[] decryptedBytes = privateKey.Decrypt(Convert.FromBase64String(encryptedStr));
string decryptedText = Encoding.UTF8.GetString(decryptedBytes);
```
阅读全文