Как зашифровать / расшифровать файл конфигурации в Python - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть приложение на Python, которое читает файл конфигурации. Мне нужно зашифровать файл конфигурации, чтобы он не был на диске. Затем мне нужно расшифровать его в моем приложении и прочитать значения. Я вижу, что есть одна библиотека Secureconfig , но она предназначена только для python 2. Есть ли подобная библиотека в python, которая может помочь мне сделать это?

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

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

Согласно Криптографические службы -Документация по Python 3.7.3 , Python не содержит никаких настоящих шифров из коробки.Только codecs имеет шифр Цезаря и стандартные кодировки, которые восстанавливают данные, такие как UUEncode и Base64.

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

Так как настоящая безопасность здесь невозможна, путь в зависимости от того, как сильно вы хотите ее сделать для взломанного пользователя, будет безопасность через неизвестность : используйте нестандартные шифры, не расшифровывайте все файлы сразу, создайте много разных мест, где происходит шифрование / дешифрование, используйте запутанный код, добавьте скрытые контрольные суммы для защиты от подделки, используйте биты данныхвне файла, хранящегося в других, неожиданных местах и ​​т. д.

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

0 голосов
/ 21 июня 2019

@ HZ - как указал Иван, есть несколько вариантов в зависимости от уровня безопасности, который вы хотите.

Я работаю над проектом, аналогичным описанному вами, и я использую криптографический анализбиблиотека (https://cryptography.io/en/latest/)

Вы можете легко установить это с помощью pip.

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

Надеюсь, эта информация поможет, если вы еще не решили эту проблему.

...