0 / 0 / 1
Регистрация: 13.11.2013
Сообщений: 84
1

Triple DES-EDE2

28.02.2018, 17:23. Показов 3147. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. Мне нужно реализовать алгоритм шифрования указанный в теме. Постольку, поскольку написать с нуля я бы его не смог, решил поискать в интернете, и нашёл вот такой код. Это реализация Triple DES (не факт что именно EDE2) на JS, но в рамках этой темы, я думаю, что язык не принципиален. Не могли бы вы подсказать, где здесь находятся ключи 1,2,3? Какого именно алгоритма это реализация (EEE3/EDE3/EEE2/EDE2), и как вы это определили?

Javascript
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
27
28
29
30
31
32
33
34
function hTS(hex_String) {
 
  const hex = hex_String.toString();
  var str = '';
 
  for (var n = 0; n < hex.length; n += 2) {
    str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));
  }
  return str;
}
 
const TripleDES = {
  encrypt: function(key, text) {
    key = CryptoJS.MD5(utf8.encode(key)).toString(CryptoJS.enc.Latin1);
    key = `${key}${key.substring(0, 8)}`;
    const cipher = forge.cipher.createCipher('3DES-ECB', forge.util.createBuffer(key));
    cipher.start({ iv: '' });
    cipher.update(forge.util.createBuffer(text, 'utf-8'));
    cipher.finish();
    const encrypted = cipher.output;
    return (forge.util.encode64(encrypted.getBytes()));
  },
  decrypt: function(key, encrypted_text) {
    key = CryptoJS.MD5(utf8.encode(key)).toString(CryptoJS.enc.Latin1);
    key = `${key}${key.substring(0, 8)}`;
    const decipher = forge.cipher.createDecipher('3DES-ECB', forge.util.createBuffer(key));
    encrypted_text = forge.util.decode64(encrypted_text);
    decipher.start({ iv: '' });
    decipher.update(forge.util.createBuffer(encrypted_text, 'utf-8'));
    decipher.finish();
    const decrypted = decipher.output;
    return hTS(decrypted.toHex());
  }
};
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2018, 17:23
Ответы с готовыми решениями:

DES
Здравствуйте, нужно сделать лаб. работу, вот разбираюсь с алгоритмом des по этому туториалу :...

Криптография метод шифрования Triple-DES
Может кто-нибудь объяснить на подобном языке с примером шифровки (входные данные и исходные) как...

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

Warning: DES is turned off!! Plese use DES application to torn it on again
здравствуйте! при включении системы, при запуске вылетает ошибка: Warning: DES is turned off!!...

1
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
28.02.2018, 21:59 2
Лучший ответ Сообщение было отмечено XChr как решение

Решение

Реализации тут, собственно, почти нет, она в библиотеке forge. Там реализован 3DES-EDE3, но здесь первый и третий ключ выбираются одинаковыми и получается 3DES-EDE2.
Javascript
1
2
    key = CryptoJS.MD5(utf8.encode(key)).toString(CryptoJS.enc.Latin1);
    key = `${key}${key.substring(0, 8)}`;
первая строка генерирует 128 бит ключа (первый и второй ключи DES), вторая добавляет к ним первую половину, то есть первый ключ.
то, что это EDE можно проверить, если все 3 ключа взять одинаковыми, тогда должно правильно расшифровываться обычным DES с одинарным ключом.
1
28.02.2018, 21:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2018, 21:59
Помогаю со студенческими работами здесь

Warning: DES is turned off!! Plese use DES application to torn it on again

Коммутатор (switch) D-Link DES-1005D (DES-1005D/E)
Помогите пожалуйста, мне нужно рассказать нормальным человеческим языком, как работает это...

Phenom II triple-core N830 2.1 GHz
Всем доброго времени! Купил б/у ноутбук HP Pavilion Dv6-3106er (DA0LX8MB6D1 REV : D) Процессор...

Ошибка при выключении Triple Interleaved mode на АЦП
Я использую АЦП в triple interleaved конфигурации на STM32F429ZI в normal режиме (т.е. не в...


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

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

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