601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
|||||||||||
1 | |||||||||||
Шифрование бинарные операции + Base64String с использованием ключа13.08.2016, 12:08. Показов 1449. Ответов 6
Немного поэкспериментировал с шифрованием, в итоге собрал такой класс:
Хотелось бы увидеть мнение. Ну и простенький кейген
0
|
13.08.2016, 12:08 | |
Ответы с готовыми решениями:
6
Шифрование методом одиночной перестановки с использованием ключа Произвести шифрование с использованием поразрядной операции «исключающее или» Шифрование умножением на бинарные матрицы Шифрование ключа |
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,704
|
|
13.08.2016, 12:35 | 2 |
Будет ли NewText возвращать читабельную строку? А если текст равен null?
TextEncription не делает ту работу по которой назван. Имхо, нифига не читабельно. К плюсам только то, что вы Key[i % (Key.Length - 1)] отрефакторили код из той старой темы. Добавлено через 4 минуты Имхо, криптопровайдер должен иметь всего три 3(4) основных члена: ключ, метод для шифрования, метод для дешифровки, [используемый алгоритм]. То есть свойства Тext и NewText тут не нужны. Добавлено через 1 минуту * Речь о симметричном шифровании.
0
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
|||||||||||||||||||||
13.08.2016, 13:02 [ТС] | 3 | ||||||||||||||||||||
IamRain, ну код-то мой, в той старой теме =))
Насчет проверки, то можно как-то так:
NewText возвращает читабельную строку, точнее если использовать его повторно(Encoding.BigEndianUnicode). TextDecryption - можно будет добавить проверку на Base64String. Следующий вызов:
Код
u677E+771+77o+770+77b+77+677g+77M+771+77/+77T+77 Hello World! Эти шаги легко убрать. Добавлено через 4 минуты Как шифрует:
малость не так написал - реверс после Принимает строку => и сверху бинарные операции. => далее конвертация в byte[] + ToBase64String => делаем реверс Просто был и другой вариант.
0
|
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,704
|
|
13.08.2016, 13:15 | 4 |
Ну код то работает, согласен. Но все равно, почитайте про SRP принцип проектирования.
Криптопровайдер не должен иметь такие зависимости как исходный текст, зашифрованный текст, это должны быть входные и выходные данные(зависимости) только в соответствующих операциях. А зачем реверс? Чтобы сложнее казалось? Добавлено через 4 минуты Вот, почитайте http://sergeyteplyakov.blogspo... st_19.html + можно вам ознакомиться с таким понятием, как "инвариант".
0
|
Администратор
|
|
13.08.2016, 23:26 | 5 |
EveKS, в коде есть баг. Из-за записи
i % (Key.Length - 1) последний символ ключа никогда не используется и значит если Key содержит только один символ, то мы получим IndexOutOfRangeException. Нужно брать остаток от Key.Length.Кроме этого алгоритм шифрования не всегда верно работает. У меня он не смог правильно зашифровать и расшифровать строку "\u24AF\u24A3\u24A0 \u24AC\u24B0\u24A4\u249E\u24A6 \u249D\u24AD\u24AA\u24B2\u24A9 \u24A1\u24AA\u24B3 \u24A5\u24B0\u24A8\u24AB\u24AE \u24AA\u24B1\u24A0\u24AD \u24AF\u24A3\u24A0 \u24A7\u249C\u24B5\u24B4 \u249F\u24AA\u24A2"
1
|
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
|
|
14.08.2016, 08:44 [ТС] | 6 |
OwenGlendower, что-то не получается... постоянно выводит что-то типо: fgd rcqqf d]rcq fgd rcqqf d]rc qfg ]rcq fgd... Как не менять \u24AF\u24A3\u24A0 - не пойму.
0
|
Администратор
|
|
14.08.2016, 11:00 | 7 |
EveKS, всё правильно. Это признак неправильной работы про который я и говорил.
0
|
14.08.2016, 11:00 | |
14.08.2016, 11:00 | |
Помогаю со студенческими работами здесь
7
Шифрование XOR не кодирует бинарные данные Бинарные операции Бинарные операции Шифрование сессионного ключа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |