Методы шифрования и дешифрования - PullRequest
0 голосов
/ 17 октября 2018

Я создаю алгоритм для шифрования строкового значения, введенного пользователем.Как я хочу, чтобы это работало, когда пользователь вводит текстовое поле, а кнопка генерирует случайный трехзначный код.

У меня возникли проблемы с подбором кода, который соответствует введенному пользователем.правильная позиция в алфавите.

Если пользователь наберет «abcdt» и его случайный код будет 324, его результат будет «ddggv». Вот наглядное представление о том, как это работает.

Алфавит-> ABCDEFGHIJKLMNOPQRSTU VWXYZ

Ввод-> ABCDT

Код: 324 Ход на 3 пробела вправо = d

Код: 324 B на 2 пробела вправо = d

Код: 324 C переместить 4 пробела вправо = g

Код: 324 D переместить 3 пробела вправо = g

Код: 324 T переместить 2 пробела вправо = V

Буду очень признателен за любую помощь.

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Я создаю алгоритм для шифрования строкового значения, введенного пользователем.

Если вы не делаете это исключительно для исследовательских целей, я настоятельно рекомендую вам не делать этогоэтот.Ваш метод вряд ли будет безопасным.Кроме того, неясно, зачем вам нужен или нужен 3-значный код, основанный на зашифрованном значении.Может быть, вы могли бы объяснить, почему вы этого хотите?

Я бы порекомендовал вам использовать любой из проверенных в бою методов и алгоритмов.Если вы хотите зашифровать пользовательский ввод, есть много способов сделать это.Одним из способов является шифрование значения с помощью AES-256 со случайно сгенерированным ключом и вектором инициализации.

0 голосов
/ 17 октября 2018

Создайте массив для всего (ввод, алфавит, ключ).

Учитывая ввод [3], D из вашего примера ввода.

Получите ваш входной индекс во входном массиве,D index = 3

Примените модуль к этому индексу и получите int из массива ключей.3% 3 = 0 -> клавиша [0] = 3

Поиск вашего индекса в массиве букв.D index = 3

Добавьте полученный ранее int к этому индексу.3 + 3 = 6

Проверьте индекс 6 для массива алфавита.алфавит [6] = G

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...