Для расшифровки данных в C# можно использовать несколько методов в зависимости от используемого алгоритма шифрования. Вот несколько распространенных подходов:
-
Симметричное шифрование (например, AES):
- Используйте класс
AesManagedиз пространства именSystem.Security.Cryptography. Для расшифровки данных вам необходимо будет предоставить тот же ключ и вектор инициализации (IV), которые использовались для шифрования. - Пример кода:
using System; using System.Security.Cryptography; using System.Text; public static string DecryptStringAES(string cipherText, byte[] key, byte[] iv) { using (AesManaged aes = new AesManaged()) { aes.Key = key; aes.IV = iv; ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV); byte[] encryptedBytes = Convert.FromBase64String(cipherText); using (var ms = new System.IO.MemoryStream()) { using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Write)) { cs.Write(encryptedBytes, 0, encryptedBytes.Length); cs.FlushFinalBlock(); } byte[] decryptedBytes = ms.ToArray(); return Encoding.UTF8.GetString(decryptedBytes); } } }
- Используйте класс
-
Асимметричное шифрование (например, RSA):
- Используйте класс
RSACryptoServiceProviderиз пространства именSystem.Security.Cryptography. Вам понадобится закрытый ключ, соответствующий открытому ключу, используемому для шифрования. - Пример кода:
using System; using System.Security.Cryptography; using System.Text; public static string DecryptStringRSA(string cipherText, string privateKeyXml) { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { rsa.FromXmlString(privateKeyXml); byte[] encryptedBytes = Convert.FromBase64String(cipherText); byte[] decryptedBytes = rsa.Decrypt(encryptedBytes, false); return Encoding.UTF8.GetString(decryptedBytes); } }
- Используйте класс
-
Код аутентификации сообщения на основе хэша (HMAC):
- Используйте классы
HMACSHA256илиHMACSHA512из пространства именSystem.Security.Cryptography, чтобы проверить целостность данных. - Пример кода:
using System; using System.Security.Cryptography; using System.Text; public static bool VerifyHMAC(string originalData, byte[] hmacKey, byte[] hmac) { using (HMACSHA256 hmacAlgorithm = new HMACSHA256(hmacKey)) { byte[] computedHmac = hmacAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(originalData)); return hmac.SequenceEqual(computedHmac); } }
- Используйте классы
Обратите внимание, что приведенные примеры являются базовыми реализациями и, возможно, их потребуется адаптировать в соответствии с вашими конкретными требованиями.