зашифровать и расшифровать файл с помощью tripleDES

2

Может кто-нибудь дать мне код или ценный sugestion для шифрования и расшифровки большого файла на С#?  Я пытаюсь сделать это с помощью TripleDES.it должен быть безопасным, быстрым и надежным здесь шифрование и дешифрование должны выполняться на основе моего ключа.

Теги:

4 ответа

1
Лучший ответ

Я нашел хорошую статью.

TripleDES

1
0

Ниже приведен фрагмент кода, если его кто-то ищет.

    public static byte[] Encrypt(byte[] plain, String key)
    {
        byte[] keyArray = SoapHexBinary.Parse(key).Value;

        TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
        tdes.Key = keyArray;
        tdes.Mode = CipherMode.CBC;
        tdes.Padding = PaddingMode.None;
        tdes.IV = new byte[8];

        ICryptoTransform cTransform = tdes.CreateEncryptor();
        byte[] resultArray = cTransform.TransformFinalBlock(plain, 0, plain.Length);
        tdes.Clear();

        return resultArray;
    }


    public static byte[] Decrypt(byte[] cipher, String key)
    {
        byte[] keyArray = SoapHexBinary.Parse(key).Value;

        TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
        tdes.Key = keyArray;
        tdes.Mode = CipherMode.CBC;
        tdes.Padding = PaddingMode.None;
        tdes.IV = new byte[8];

        ICryptoTransform cTransform = tdes.CreateDecryptor();
        byte[] resultArray = cTransform.TransformFinalBlock(cipher, 0, cipher.Length);
        tdes.Clear();

        return resultArray;
    }

Имейте в виду, что я передавал ключ, как в формате HexBinary. В вышеприведенном коде используется CBC-режим шифрования с начальным вектором {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, а для заполнения - None, поскольку данные, которые я прошел, всегда были кратными 64 бит. Поэтому, если ваш размер данных не является фиксированным, вам может потребоваться установить дополнение.

0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню