在C#中,可以使用System.Security.Cryptography
命名空間中的RSA
類來驗證數字簽名。以下是一個簡單的示例,展示了如何使用RSA驗證數字簽名:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
// 生成RSA密鑰對
using (RSA rsa = RSA.Create(2048))
{
// 創建待簽名的數據
string data = "Hello, world!";
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
// 使用私鑰對數據進行簽名
byte[] signature = rsa.SignData(dataBytes, CryptoConfig.MapNameToOID("SHA256"));
// 使用公鑰驗證數字簽名
bool isVerified = rsa.VerifyData(dataBytes, CryptoConfig.MapNameToOID("SHA256"), signature);
Console.WriteLine("Signature verification: " + isVerified);
}
}
}
在這個示例中,我們首先生成一個RSA密鑰對。然后,我們創建一個待簽名的字符串,并將其轉換為字節數組。接下來,我們使用私鑰對數據進行簽名,并將簽名結果存儲在signature
變量中。最后,我們使用公鑰驗證數字簽名,并將結果存儲在isVerified
變量中。如果簽名驗證成功,isVerified
將為true
,否則為false
。