Можно ли расшифровать шифрование AES от C# с использованием SQL Server 2008?

`

public class AesEncryptHelper
{
    private static readonly int _saltSize = 32;
    private static readonly string _key = "slfkey2112";
    private static string Encrypt(string plainText, string key)
    {
        if (string.IsNullOrEmpty(plainText))
            throw new ArgumentNullException("plainText");
        if (string.IsNullOrEmpty(key))
            throw new ArgumentNullException("key");

        var keyDerivationFunction = new Rfc2898DeriveBytes(key, _saltSize);            
        var saltBytes = keyDerivationFunction.Salt;
        var keyBytes = keyDerivationFunction.GetBytes(32);
        var ivBytes = keyDerivationFunction.GetBytes(16);

        using (var aesManaged = new AesManaged())
        using (var encryptor = aesManaged.CreateEncryptor(keyBytes, ivBytes))
        using (var memoryStream = new MemoryStream())
        {
            using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
            using (var streamWriter = new StreamWriter(cryptoStream))
            {
                streamWriter.Write(plainText);
            }

            var cipherTextBytes = memoryStream.ToArray();
            Array.Resize(ref saltBytes, saltBytes.Length + cipherTextBytes.Length);
            Array.Copy(cipherTextBytes, 0, saltBytes, _saltSize, cipherTextBytes.Length);

            return Convert.ToBase64String(saltBytes);
        }

    }

    public static string Encrypt(string plainText)
    {
        return Encrypt(plainText, _key);
    }

    private static string Decrypt(string ciphertext, string key)
    {
        if (string.IsNullOrEmpty(ciphertext))
            throw new ArgumentNullException("cipherText");
        if (string.IsNullOrEmpty(key))
            throw new ArgumentNullException("key");

        var allTheBytes = Convert.FromBase64String(ciphertext);
        var saltBytes = allTheBytes.Take(_saltSize).ToArray();
        var ciphertextBytes = allTheBytes.Skip(_saltSize).Take(allTheBytes.Length - _saltSize).ToArray();

        var keyDerivationFunction = new Rfc2898DeriveBytes(key, saltBytes);

        var keyBytes = keyDerivationFunction.GetBytes(32);
        var ivBytes = keyDerivationFunction.GetBytes(16);
        using (var aesManaged = new AesManaged())
        using (var decryptor = aesManaged.CreateDecryptor(keyBytes, ivBytes))
        using (var memoryStream = new MemoryStream(ciphertextBytes))
        using (var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read))
        using (var streamReader = new StreamReader(cryptoStream))
        {
            return streamReader.ReadToEnd();
        }

    }

    public static string Decrypt(string cipherText)
    {
        return Decrypt(cipherText, _key);
    }
}

`Возможно ли расшифровать шифрование AES в C# с помощью расшифровщика в SQL Server 2008? выше кода, который я использовал для шифрования в C#. Я не хочу расшифровывать в C#, это занимает много времени для обработки, потому что у меня много данных.

0 ответов

Другие вопросы по тегам