23 / 23 / 11
Регистрация: 04.12.2014
Сообщений: 395
1

Криптография метод шифрования Triple-DES

01.12.2016, 19:49. Показов 2831. Ответов 3

Может кто-нибудь объяснить на подобном языке с примером шифровки (входные данные и исходные)
как происходит шифровка, читал MSDN, плохо понял об аргументах, википедия к сожалению тоже не помогла.
Объясните, какие данные на входе должны быть (длина, тип, формат)
И как происходит шифрование.
Буду очень благодарен)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2016, 19:49
Ответы с готовыми решениями:

Криптография: как и можно ли поменять ключ шифрования
Стандартная функция шифрования: public string encrypt(string encryptionString) { ...

Исправить код DES шифрования
Пишу курсовую и нужно прикрутить шифрование. Решил применить DES. Нужно что-бы входящий блок был...

Шифрования DES, как подлючить кириллицу?
Всем привет! Друзья вот код программы : using System; using System.Collections.Generic; using...

Нужен пример реализации алгоритма шифрования DES
Всем доброго времени суток =) Знаю, что во Framework'е есть встроенные средства для шифрования и...

3
Администратор
Эксперт .NET
14885 / 11999 / 4822
Регистрация: 17.03.2014
Сообщений: 24,258
Записей в блоге: 1
01.12.2016, 22:27 2
1337trix, входные данные для алгоритма шифрования это всегда массив байтов. Т.к. TripleDES блочный симметричный алгоритм, то массив может содержать любое количество байтов. Для шифрования ему нужно указать ключ (Key) и вектор инициализации (IV). При шифровании и дешифровании необходимо использовать один и тот же ключ и вектор. Ключ следует держать в секрете, а вектор инициализации необязательно. У ключа должна быть определенная длина которую можно менять, но лучше использовать максимально возможную (по умолчанию так и есть). Код шифрования и дешифрования может выглядеть так:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static byte[] Encrypt(byte[] data,  byte[] key, byte[] iv)
{
    var mstream = new MemoryStream();
    
    using (var csp = new TripleDESCryptoServiceProvider())
    using (var cstream = new CryptoStream(mstream, csp.CreateEncryptor(key, iv), CryptoStreamMode.Write))
    {
        cstream.Write(data, 0, data.Length);
        cstream.FlushFinalBlock();
    }
 
    return mstream.ToArray();
}
 
public static byte[] Decrypt(byte[] data,  byte[] key, byte[] iv)
{
    var mstream = new MemoryStream(data);
    using (var csp = new TripleDESCryptoServiceProvider())
    using (var cstream = new CryptoStream(mstream, csp.CreateDecryptor(key, iv), CryptoStreamMode.Read))
    {
        byte[] decryptedData = new byte[data.Length];
        int bytesRead = cstream.Read(decryptedData, 0, decryptedData.Length);
        if (bytesRead != decryptedData.Length) Array.Resize(ref decryptedData, bytesRead);
        return decryptedData;
    }
}

Данные методы работают только с байтами. К ним несложно добавить методы для текста.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
public static byte[] EncryptText(string data,  byte[] key, byte[] iv)
{
    return Encrypt(Encoding.UTF8.GetBytes(data), key, iv);
}
 
public static string DecryptText(byte[] data,  byte[] key, byte[] iv)
{
    return Encoding.UTF8.GetString(Decrypt(data, key, iv));
}

И наконец пример использования
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
string inputText = "Тихо в лесу. Только не спит барсук";
byte[] key = { /* Подставьте ключ шифрования. 24 байта */ };
byte[] iv  = { /* Подставьте вектор инициализации. 8 байтов */};
byte[] encryptedData = EncryptText(inputText, key, iv);
string decryptedText = DecryptText(encryptedData, key, iv);
Console.WriteLine (inputText == decryptedText);

Ключ шифрования и вектор инициализации можно получить создав экземпляр класса TripleDESCryptoServiceProvider и выведя его свойства Key и IV.
0
Эксперт .NET
6225 / 3862 / 1556
Регистрация: 09.05.2015
Сообщений: 9,128
01.12.2016, 22:59 3
OwenGlendower, не лучше CopyTo использовать у потоков?
0
Администратор
Эксперт .NET
14885 / 11999 / 4822
Регистрация: 17.03.2014
Сообщений: 24,258
Записей в блоге: 1
02.12.2016, 00:53 4
Someone007, в рамках данного вопроса это не принципиально
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2016, 00:53
Помогаю со студенческими работами здесь

Triple DES-EDE2
Привет. Мне нужно реализовать алгоритм шифрования указанный в теме. Постольку, поскольку написать с...

Triple DES-EDE3 практическая реазизация
Прошу помощи аудитории этого уважаемого форума и форумчан... Мне требуется код процедуры шифрования...

криптография. метод шифрования- Алгебраические методы (матрица*вектор_столбец), объект-пароли в файле паролей
помогите плиз. есть сам метод, как с паролями сделать его не понимаю... программирования толком не...

Алгоритм шифрования DES
Требуется написать программу реализующую симметричный алгоритм шифрования DES. В Инете много...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru