c#中rsa加密解密怎么實(shí)現(xiàn)

c#
小億
442
2024-02-05 13:05:29

在C#中,可以使用RSACryptoServiceProvider類來(lái)實(shí)現(xiàn)RSA加密和解密。

首先,你需要生成一個(gè)RSA密鑰對(duì)。以下是一個(gè)示例:

using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
    // 生成密鑰對(duì)
    RSAParameters publicKey = rsa.ExportParameters(false); // 獲取公鑰
    RSAParameters privateKey = rsa.ExportParameters(true); // 獲取私鑰

    // TODO: 將公鑰和私鑰保存到安全地方
}

接下來(lái),你可以使用生成的公鑰進(jìn)行加密,使用私鑰進(jìn)行解密。以下是一個(gè)示例:

using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
    // 導(dǎo)入私鑰
    rsa.ImportParameters(privateKey);

    // 加密數(shù)據(jù)
    byte[] dataToEncrypt = Encoding.UTF8.GetBytes("Hello World");
    byte[] encryptedData = rsa.Encrypt(dataToEncrypt, true);
    
    // 使用公鑰解密
    rsa.ImportParameters(publicKey);
    byte[] decryptedData = rsa.Decrypt(encryptedData, true);

    // 輸出解密后的數(shù)據(jù)
    string decryptedText = Encoding.UTF8.GetString(decryptedData);
    Console.WriteLine(decryptedText);
}

請(qǐng)注意,這只是一個(gè)簡(jiǎn)單的示例。在實(shí)際使用中,你可能需要處理密鑰的存儲(chǔ)和管理,并注意加密數(shù)據(jù)的大小限制。

0