Реклама

Тег → XOR

  • EVILEG
  • Статья
  • 23 июля 2017 г. 13:27

Qt/C++ - Урок 069. Шифрование методом XOR

XOR, cmake, Qt

XOR-шифрование - это применение ключа через побитовое исключающее ИЛИ к исходному тексту. Механизм побитового исключающего следующий:

X Y X⊕Y
0 0 0
0 1 1
1 0 1
1 1 0

Таким образом при выполнении исключающего ИЛИ всегда будет нулевое значение, если переменные имели одинаковые значения.

Особенность XOR в том, что одной и той же функцией можно как зашифровать данные, так и расшифровать их. Это простой метод шифрации данных, который может быть взломан достаточно быстро при наличии достаточно большого зашифрованного текста, или большого словаря паролей. Но тем не менее это уже можно применять для небольшой первоначально защиты данных.

В контексте Qt применение XOR ничем не отличается от того, как если бы программа была написана без использования Qt. Вопрос здесь в другом, как правильно извлечь данные для шифрации из объектов QString, например, если текст вводился в QTextEdit.

Для этого напишем программу, которая содержит:

  • QTextEdit, в который будет введён текст, который будет зашифрован.
  • QLineEdit, в который будет вводится ключ шифрования.
  • QPushButton, в слоте обработчике нажатия которого, будет выполняться шифрация/дешифрация данных. Снова отмечу, что метод будет использоваться один и тот же.

Программа будет выглядеть следующим образом:

Реклама
  • JaJay
  • 17 декабря 2017 г. 5:16

C++ - Тест 002. Константы

  • Результат 58 баллов
  • Очки рейтинга -2
  • JaJay
  • 17 декабря 2017 г. 4:55

C++ - Тест 001. Первая программа и типы данных

  • Результат 93 баллов
  • Очки рейтинга 8
  • JaJay
  • 17 декабря 2017 г. 4:48

C++ - Тест 001. Первая программа и типы данных

  • Результат 66 баллов
  • Очки рейтинга -1
Последние комментарии
  • EVILEG
  • 7 декабря 2017 г. 9:47

Django - Урок 011. Добавление комментариев на сайт с Django

Визуальный пример чего? комментариев? При ответе на конкретный комментарий рядом с ником отвечающего будет стрелочка и указание ник другого пользователя. Который будет ссылкой на коммента...

  • Bernar
  • 7 декабря 2017 г. 9:24

Django - Урок 011. Добавление комментариев на сайт с Django

есть визуальный пример ?

  • EVILEG
  • 6 декабря 2017 г. 11:30

Django - Урок 011. Добавление комментариев на сайт с Django

Да, так будет даже лучше, я на сайте уже обновил до такого вида код Вот это уже не нужно if request.method == 'POST': Поскольку Вы и так используете метод post, то есть эта про...

  • Bernar
  • 6 декабря 2017 г. 11:19

Django - Урок 011. Добавление комментариев на сайт с Django

сделал немного по другому class EArticleView(View): template_name = 'knowledge/article.html' comment_form = CommentForm def get(self, request, *args, **kwargs): ...

Сейчас обсуждают на форуме
  • EVILEG
  • 16 декабря 2017 г. 17:23

Пауза в многопоточности

QFuture, который возвращается QtConcurrent::map имеет методы pause() и resume() и теоретически должен поддерживать этот функционал. Но для Qt...

  • Миша
  • 15 декабря 2017 г. 11:26

Как найти в QVector макс и мин

Спасибо

  • Galant
  • 14 декабря 2017 г. 19:58

LPT

Понял! Спасибо!

  • EVILEG
  • 14 декабря 2017 г. 13:38

QCustomPlot можно ли построить прерывистую линию на одном графике?

Во-первых: В pro файле проект по идее достаточно указать следующий define для включения возможности рендеринга через OpenGL DEFINES += QCUSTOMPLOT_USE_OPENGL И во вторых:...

  • EVILEG
  • 13 декабря 2017 г. 8:05

В многопоточности выполнять действие только в одном из потоков

Статическиe методs QThread::currentThread(); и QThread::currentThreadId() могут возвращать указатель на поток и его handle id соответственно. Можете попробовать через как...