|
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 4
|
|
Шифрование с открытым ключом06.06.2018, 22:48. Показов 6453. Ответов 16
Заинтересовался недавно шифрованием, слышал что есть так называемые "open source" шифраторы, но что-то не смог найти их код для примера. Дело в том что хочу сам создать через windows forms с использованием c++ простейшую утилиту для шифрования введенного текста. Что-то вроде 2 текст бара, 1 для ввода другое для вывода текста, окно для ввода ключа и кнопки зашифровать и дешифровать. При этом чтобы ключ работал про простейшему принципу, допустим ввожу 5-ти значный ключ (12345) шифрую текст, затем чтобы дешифровать текст требуется ввод того-же ключа (12345), если ключ будет другой то вместо исходного текста будет каша, а само шифрование происходило не перестановкой символов, а в виде хэша. Может кто кинуть пример такого кода.
0
|
|
| 06.06.2018, 22:48 | |
|
Ответы с готовыми решениями:
16
Шифрование/дешифрование методом RSA с открытым ключом. С++ Криптографический алгоритм с открытым ключом RSA
|
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
|
| 06.06.2018, 23:21 | |
|
Матиас, например, хэдэр с готовым blowfish. Пример запуска есть в верхней части кода, в комментариях
https://defuse.ca/blowfish.htm
0
|
|
|
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 4
|
|
| 06.06.2018, 23:53 [ТС] | |
|
DobroAlex, спасибо, код полистал, довольно сложным показался, попробую разобраться, но хотелось-бы попроще, если такое есть.
0
|
|
|
1358 / 856 / 366
Регистрация: 26.02.2015
Сообщений: 3,814
|
|
| 07.06.2018, 00:01 | |
|
Лучше уже возьмите CSP какую-нибудь, тестовые сертификаты, используйте CryptoAPI, CAPICOM, CapiLite и т.д. и попробуйте решить какую-нибудь более-менее реальную задачу. Например, авторизация на какой-нибудь торговой площадке с помощью ЭЦП.
Добавлено через 1 минуту Матиас, куда уж проще, чем этот header?
0
|
|
|
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 4
|
|
| 07.06.2018, 17:34 [ТС] | |
|
DobroAlex, что-то я так и не смог запустить этот код
0
|
|
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
|
| 07.06.2018, 21:54 | |
|
Матиас, так покажите, что написали
0
|
|
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||||
| 07.06.2018, 22:21 | ||||
|
Я к тому, что матчасть сначала неплохо бы освоить, хоть на уровне 2x2.
0
|
||||
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
|||||
| 07.06.2018, 22:27 | |||||
|
gng,
0
|
|||||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|||
| 07.06.2018, 22:36 | |||
|
Но я сказал к тому что "открытый ключ" - устоявшийся термин.
0
|
|||
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
||
| 07.06.2018, 22:54 | ||
|
gng, Я понял о чем речь шла, исходил из того, что автор писал в посте
![]()
0
|
||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
| 07.06.2018, 22:59 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 4
|
|
| 09.06.2018, 10:57 [ТС] | |
|
Вы правы, решил я более детально изучить основы, и действительно тот бред, который я описывал в теме, можно было сократить до Симметричного шифрования с одним ключом.
Может кто кинуть пример такого кода?
0
|
|
|
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 3
|
|
| 14.12.2022, 16:55 | |
|
Здравствуйте.
Я изучаю С++. Пока делаю элементарные ошибки. Нашел программу (Шифрование с открытым ключом) https://gist.github.com/Sergiy... 198302b850 Автор Sergii Osadchyi Пытаюсь в коде программы C++ RSA, заменить фрагмент: do { std::cout << "Enter a Prime number p :" << std::endl; std::cin >> p; flag = isPrime( p ); if ( flag == false ) { std::cout << "\nWRONG INPUT (This number is not Prime. A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself)\n" << std::endl; } } while ( flag == false ); do { std::cout << "Enter a Prime number q :" << std::endl; std::cin >> q; flag = isPrime( q ); if ( flag == false ) { std::cout << "\nWRONG INPUT (This number is not Prime. A prime number is a natural number greater than 1 that has no positive divisors other than 1 and itself)\n" << std::endl; } } while ( flag == false); На вполне конкретные, значения: p=53; q=199; И в итоге при попытке закодировать (Hello) получаю сообщение без первого знака: Enter Message to be encryped: Hello The message is: ello THE ENCRYPTED MESSAGE IS: � THE DECRYPTED MESSAGE IS: ello Если вводить эти числа в терменале, в программе без изменений, то все хорошо. В чем дело? Что я не вижу? Заранее благодарен.
0
|
|
|
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 3
|
|
| 14.12.2022, 23:27 | |
|
Разобрался.
В тексте программы присутствуют такие строки: // there is a newline character left in the input stream, so we use ignore() std::cin.ignore(); std::getline(std::cin, msg); Так вот, как только закоментировал std::cin.ignore(); все заработало как надо. Правда не очень понял, как одно с другим связано.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 15.12.2022, 00:47 | |
|
Если ты убрал ввод, то как ignore() мог остаться?
1
|
|
|
0 / 0 / 0
Регистрация: 05.10.2020
Сообщений: 3
|
|
| 15.12.2022, 08:49 | |
|
Действительно! Но компилятор ошибки не обнаружил.
0
|
|
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,268
|
|
| 15.12.2022, 14:38 | |
|
Самый простой способ зашифровать файл - это проделать логическую операцию hor (^) между байтами файла и байтами генератора случайных чисел в диапазоне 0 - 255. В качестве ключа использовать число, иниалицизирующее ГСЧ.
0
|
|
| 15.12.2022, 14:38 | |
|
Помогаю со студенческими работами здесь
17
Шифрование файлов открытым ключем Шифрование таблицей с ключом Шифрование данных ПРИВАТНЫМ ключом Шифрование методом перестановки с заданным ключом текста любой длины Шифрование методом перестановки символов открытого текста в соответствии с некоторым правилом (ключом) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.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 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|