Почему шифрование считается безопаснее?

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

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

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

Является ли преимущество хранения зашифрованных учетных данных на основе дополнительного шага декомпиляции-дешифрования, или я что-то неправильно понял?

1 ответ

Есть два способа проверить предоставленные учетные данные, когда у вас есть зашифрованная версия:

  1. Расшифровать зашифрованную версию; это, очевидно, потребовало бы хранения инструментов, необходимых для расшифровки, что небезопасно
  2. Зашифруйте то, что вы пытаетесь проверить, и посмотрите, соответствует ли оно вашей зашифрованной версии. Это не требует способности расшифровать что-либо.
Другие вопросы по тегам