C#, как проверить, шифруется ли значение с помощью пароля MD5?

Скопируйте некоторую простую строку кода с методической точностью и заставьте их читать и интерпретировать ее, как они продвигаются. Они скоро разработают его. Я начал программировать на Acorn Электрон с отрывками кода из журналов Acorn. Я понятия не имел о программировании, когда мне было 6 лет, я раньше копировал текст, но постепенно я изучал то, что означали различные слова.

5
задан JL. 26 November 2009 в 10:14
поделиться

3 ответа

В методе isEncrypted вы можете попытаться расшифровать сообщение.
Поскольку вы используете заполнение PKCS7, скорее всего, незашифрованное сообщение не удастся расшифровать, поскольку заполнение не соответствует установленному режиму заполнения.

Расшифровка вызовет исключение, и вам придется перехватить это и вернуть false в этом случае .

Существует небольшая вероятность того, что дешифрование будет выполнено (когда сообщение не зашифровано), если данные соответствуют режиму заполнения. Однако это маловероятно.

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

4
ответ дан 13 December 2019 в 22:09
поделиться

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

Тем не менее, простое решение - добавить токен, такой как 'ENC:' , к зашифрованному паролю. Если вам нужно беспокоиться о злонамеренном вмешательстве в файл конфигурации, следует перейти к использованию кода аутентификации сообщения, такого как HMAC.

4
ответ дан 13 December 2019 в 22:09
поделиться

Поскольку ваша функция возвращает строку, нет причин, по которым вы не можете добавить текстовый код в начало зашифрованных данных, которые может искать функция IsEncrypted, например "MD5ENC" + [зашифрованный текст] .

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

Обратите внимание, что я использую слово должно .

В любом случае, чтобы вернуть к моему первоначальному предложению.

2
ответ дан 13 December 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: