|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
Нужен полный код алгоритма шифрования AES 25623.01.2014, 01:16. Показов 9460. Ответов 17
Метки нет (Все метки)
Собсна, сабж. Знаю, что оно делается в несколько строк, но именно это мне и не надо.
Надо БЕЗ использования using System.Security.Cryptography; .. Только оупен сорс.. Добавлено через 29 минут И еще: Как понять: "младшие 128 бит SHA1" ? - этот же хэш 160 битный или это 128 (половина) от 256-битного хэша?
0
|
|
| 23.01.2014, 01:16 | |
|
Ответы с готовыми решениями:
17
AES узнать сколько будет байтов после шифрования
Нужен пример реализации алгоритма шифрования AES-128 |
|
|
|||
| 23.01.2014, 11:06 | |||
Сообщение было отмечено NickoTin как решение
РешениеДобавлено через 5 минут Получаете 160 битный хэш, и отбрасываете последние 32 бит
1
|
|||
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
| 23.01.2014, 13:02 [ТС] | |
|
turbanoff, огромнейшее спасибо! И напоследок: может ли быть 256-битный вектор (IV) в данном алгоритме?
Добавлено через 16 минут turbanoff, не получается собрать проект Нашел и тот Mono.Security.Cryptography;, создал классы, прописал их юзинги и 22 ошибки пишет Ругается на: - SymmetricTransform - Aes encrypt - CipherMode и так далее..
0
|
|
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
| 23.01.2014, 17:48 [ТС] | |
|
turbanoff, написал в ЛС одно предложение. А по поводу вектора 256-битного что можете сказать?
Я перерыл кучу исходников, то везде только 128-битный вектор максимум. Может опечатка в задании... Добавлено через 4 часа 17 минут turbanoff, собрал тот проект и пришел к выводу, что там вообще не используется вектор
0
|
|
|
|
|
| 23.01.2014, 18:17 | |
|
MegaSinner, вектор инициализации используется кодом, который вызывает код из AesTransform. Вообще, IV используется в симметричных шифрах, при режимах шифрования отличных от ECB. Если вам нужно просто шифрование, можете выкинуть его из кода.
1
|
|
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
| 23.01.2014, 19:23 [ТС] | |
|
Anklav, turbanoff, мне обязательно нужно с вектором. Подскажите, куда копать..
И можно ли каким-то макаром задать 256-битный вектор?
0
|
|
|
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
|
|
| 23.01.2014, 19:58 | |
|
Вектор равен размеру блока для шифрования.
Популярный режим шифрования с вектором CBC. Шифрование у AES идет блочное, режим использует обратную связь, вектор является первым элементом обратной связи. Используя EBC можно построить CBC следующим образом. Инициализация: Придумываем вектор размером в блок шифрования (это просто случайные данные) Алогритм: 1) делаем операцию XOR нашего вектора, с блоком открытых данных, в данный момент обрабатывающимися. 2) шифруем полученный блок с помощью метода EBC, доступного у вашем классе. 3) зашифрованный текст записываем в файл (или куда то сохраняем) 4) этот зашифрованный текст является следующим вектором, для следующего блока. 5) возвращаемся в 1. Ниже картинка для понимания, процедуру шифрования можно принять за вызов вашего метода EBC, для блока данных.
1
|
|
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
||
| 23.01.2014, 21:15 [ТС] | ||
|
Anklav, о, наимудрейший!)
По этому я и говорил про макар) Вы очень доходчиво всё расписали. Попробую усвоить эту информацию.. Спасибо! Если чё, еще вернусь... Добавлено через 1 час 1 минуту Anklav, А как расшифровывать с вектором?
0
|
||
|
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
|
|
| 23.01.2014, 21:27 | |
|
Обратная операция. Для начала нужно загрузить сохраненный IV, оставшийся с шифрования. (его можно сохранять открытым)
1. Сохраняем зашифрованный блок. (назовем его temp) 2. Расшифровываем блок. 3. Делаем операцию XOR нашего блока с IV. 4. Делаем IV = temp; 5. Сохраняем расшифрованные данные. 6. В пункт 1. Опять же у википедии есть отличные картинки.
1
|
|
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
| 23.01.2014, 23:00 [ТС] | |
|
Anklav, ааа, понял)
Добавлено через 1 час 31 минуту Anklav, я так понимаю блоки - это последовательные порции данных для обработки - а что если у нас размер блока 256 бит, а размер файла, скажем, 40 байт, то не достающиеся для кратности 24 байта заполняются нолями или как?
0
|
|
|
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
|
|
| 23.01.2014, 23:12 | |
|
Правильно понимаете.
Можно нулями, можно случайными данными, главное не забыть их потом обрезать. Ну ,кстати, блок у aes ,вроде, всегда равен 128 битам. Есть такой интерфейс ICryptoTransform который определяет криптографическую трансформацию, так вот, вам бы его в вашем классе определить, и тогда можно пользоваться стандартными крипто-потоками, у него всего 2 метода как раз обычное шифрование бока, и последнее шифрование блока (в нем как раз то и надо дополнять блок данными, если это необходимо).
1
|
|
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
| 23.01.2014, 23:24 [ТС] | |
|
Anklav, шифруется, но не удалось добиться самого главного:
чтобы при попытке расшифровать с неверным ключом - вылетал Эксцепшин - как это происходит, юзая System.Security.Cryptography;, а это необходимо.
0
|
|
|
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
|
|
| 24.01.2014, 00:27 | |
|
Честно говоря, я без понятия как он определяет верный ключ, или нет.
0
|
|
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
| 24.01.2014, 17:19 [ТС] | |
|
Anklav, немного продвинулся в этом вопросе и застрял:
с помощью new RijndaelManaged() удалось задать 256-битный вектор, то тут такая лажа: При расшифровке сообщения с правильным ключом, но абсолютно левым вектором, каша получается только в первом блоке сообщения - всё остальное как на ладони. Почему оно так? Я перепробовал все режимы..
0
|
|
|
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
|
|
| 24.01.2014, 17:31 | |
|
Ну вы на картинку гляньте, где режим CBC, вектор влияет только на первый блок.
И это нормальное поведение, вектор и не должен быть ключем. Он нужен для того, что бы одинаковые открытые блоки, после шифрования не выглядели одинаково.
1
|
|
|
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
|
|
| 24.01.2014, 17:46 [ТС] | |
|
Anklav, чудесно, а я думал, что глюк какой-то.
0
|
|
| 24.01.2014, 17:46 | |
|
Помогаю со студенческими работами здесь
18
Нужен пример реализации алгоритма шифрования DES Получение ключа для AES шифрования из строки Реализация алгоритма SHA–256
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 01.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 31.01.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|