Что лучший способ состоит в том, чтобы зашифровать текстовый файл в C/C++?

У меня недавно (июль 2014 г.) была похожая проблема, и я обнаружил в OS X (10.9.4), что срок действия сертификата «DigiCert High Assurance EV Root CA» истек (хотя у меня был и другой, срок действия которого еще не истек).

  1. Открытый доступ через брелок
  2. Поиск сертификатов для «DigiCert»
  3. Меню «Просмотр»> Показать сертификаты с истекшим сроком

Я нашел два сертификата с именем «DigiCert High» Assurance EV Root CA ", срок действия которого истекает ноябрь 2031 г., срок действия истек в июле 2014 г. (несколько дней назад). Удаление устаревшего сертификата решило проблему для меня.

Надеюсь, это поможет.

5
задан user32262 27 June 2009 в 23:51
поделиться

4 ответа

Думаю, вы ошиблись. Если ваша цель - безопасность, реальная безопасность, тогда вам не захочется хранить пароль даже в его зашифрованном виде (потому что он может быть расшифрован, если ключ украден, как говорили другие).

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

Кроме того, такая ситуация хорошо поддается базам данных, не так ли? используя один?

Google хеширование паролей с использованием солей , и вы можете прочитать об этом у настоящих экспертов по безопасности (я не один).

3
ответ дан 14 December 2019 в 01:14
поделиться

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

4
ответ дан 14 December 2019 в 01:14
поделиться

Исправленный ответ .
Вам нужен код для шифрования и дешифрования файла, который можно использовать с вашим кодом C ++.
Было бы совершенно неправильно писать собственный код ( как этот ).

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

  • Реализовать собственную версию стандартного алгоритма шифрования (и рисковать слабостью из-за любых ошибок, которые вы делаете)
  • Используйте «системный» вызов из вашего приложения и запустить стандартное шифрование (например, bcrypt ), которое, возможно (надеюсь) доступно в вашей системе.

Я бы по-прежнему придерживался стандартной библиотеки или интеграции такого кода с открытым исходным кодом в свое приложение. Пожалуйста, объясните, что мешает вам это сделать.


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

Возможно связанные вопросы Stackoverflow

0
ответ дан 14 December 2019 в 01:14
поделиться

Стандарт шифрования, который в настоящее время считается "безопасным", - это AES (также называемый Rijndael). Вы можете найти реализацию C ++ в Codeproject и во многих других местах.

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

Если ваше приложение будет работать под Windows, вы также можете использовать DPAPI для хранения зашифрованной информации.

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

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