在C#中實現numeric類型的數據加密,可以使用加密算法對數字進行加密和解密
dotnet add package System.Security.Cryptography
NumericEncryption
的類,并添加以下代碼:using System;
using System.Numerics;
using System.Security.Cryptography;
public class NumericEncryption
{
private readonly RSA _rsa;
public NumericEncryption()
{
_rsa = RSA.Create();
}
public byte[] Encrypt(BigInteger number)
{
var dataToEncrypt = number.ToByteArray();
return _rsa.Encrypt(dataToEncrypt, RSAEncryptionPadding.OaepSHA256);
}
public BigInteger Decrypt(byte[] encryptedData)
{
var decryptedData = _rsa.Decrypt(encryptedData, RSAEncryptionPadding.OaepSHA256);
return new BigInteger(decryptedData);
}
}
NumericEncryption
類加密和解密numeric類型的數據:using System;
class Program
{
static void Main(string[] args)
{
var numericEncryption = new NumericEncryption();
// 要加密的數字
BigInteger number = 12345678901234567890;
// 加密數字
byte[] encryptedNumber = numericEncryption.Encrypt(number);
Console.WriteLine($"Encrypted number: {Convert.ToBase64String(encryptedNumber)}");
// 解密數字
BigInteger decryptedNumber = numericEncryption.Decrypt(encryptedNumber);
Console.WriteLine($"Decrypted number: {decryptedNumber}");
}
}
這個示例使用RSA加密算法對大整數進行加密和解密。請注意,加密后的數據是二進制格式,因此在輸出時將其轉換為Base64字符串以便于閱讀。在實際應用中,您可能需要根據需求調整加密算法和密鑰長度。