I
Ishikawa
Сегодня мы немного модифицируем нашу программу, чтобы мы могли шифровать не только файлы, но и короткие сообщения. Полезно в ситуации, когда вы хотите отправить по незащищенным каналам какую-либо информацию, ключ к которой хранится только у вас в голове.
Приступим.
В основном классе нашей программы создадим публичную переменную String.
Потом добавим функцию CryptoText с одним параметром типа bool. Она будет использоваться в качестве триггера.
Итак, чтобы зашифровать текст, нужно достать его из текстового поля, перевести в массив char, затем с помощью foreach каждый char переведем в Int, проведем нужные нам операции ( внутри банальное умножение на число, но можно дописать что-то более мощное, хоть AES ), и через промежуточную переменную выведем в другое текстовое поле.
Иными словами:
На форму нашего приложения добавляем еще одну кнопку и вещаем на нее обработчик, в теле которого делаем вызов функции:
Если TRUE = кодируем, FALSE = декодируем.
Декодировка для данного варианта строится тоже просто. Требуется взять текст из другого поля, перевести его в массив char, также в цикле foreach из char сделать int и провести процедуры, обратные шифрованию (банальное деление на число) и вывести текст в другое текстовое поле.
Иными словами:
На форму добавляем еще одну кнопку (можно и чек-бокс) для дешифровки и вешаем обработчик для функции:
Компилируем. Проверяем что получилось.
А получилось весьма интересно. Вот как выглядит шифрованный текст:
И так расшифрованный:
Конечно, при таком варианте как банальные операции шифр разгадывается легко и подвержен статистическому анализу, но никто не мешает использовать более крутые алгоритмы, основанные на эллиптических кривых, числе Пи, логарифмах и пр.
Ко всему в данном варианте ключ для шифровки и расшифровки постоянен.
Но никто не мешает использовать ваш собственный - для этого в коде еще с первой версии есть кусочек кода:
На этом всё.
Обновленная версия на GitHub по ссылке: CryptoNote
Приступим.
В основном классе нашей программы создадим публичную переменную String.
Потом добавим функцию CryptoText с одним параметром типа bool. Она будет использоваться в качестве триггера.
Итак, чтобы зашифровать текст, нужно достать его из текстового поля, перевести в массив char, затем с помощью foreach каждый char переведем в Int, проведем нужные нам операции ( внутри банальное умножение на число, но можно дописать что-то более мощное, хоть AES ), и через промежуточную переменную выведем в другое текстовое поле.
Иными словами:
На форму нашего приложения добавляем еще одну кнопку и вещаем на нее обработчик, в теле которого делаем вызов функции:
Если TRUE = кодируем, FALSE = декодируем.
Декодировка для данного варианта строится тоже просто. Требуется взять текст из другого поля, перевести его в массив char, также в цикле foreach из char сделать int и провести процедуры, обратные шифрованию (банальное деление на число) и вывести текст в другое текстовое поле.
Иными словами:
На форму добавляем еще одну кнопку (можно и чек-бокс) для дешифровки и вешаем обработчик для функции:
Компилируем. Проверяем что получилось.
А получилось весьма интересно. Вот как выглядит шифрованный текст:
И так расшифрованный:
Конечно, при таком варианте как банальные операции шифр разгадывается легко и подвержен статистическому анализу, но никто не мешает использовать более крутые алгоритмы, основанные на эллиптических кривых, числе Пи, логарифмах и пр.
Ко всему в данном варианте ключ для шифровки и расшифровки постоянен.
Но никто не мешает использовать ваш собственный - для этого в коде еще с первой версии есть кусочек кода:
На этом всё.
Обновленная версия на GitHub по ссылке: CryptoNote