如何在python中加密/解密配置文件

我有一个读取配置文件的 python 应用程序。我需要加密配置文件,所以它不是普通的磁盘。然后我需要在我的应用程序中解密它并读取值。我看到有一个库Secureconfig,但它仅适用于 python 2。python 中是否有类似的 lib 可以帮助我做到这一点?

我有一个读取配置文件的 python 应用程序。我需要加密配置文件,所以它不是普通的磁盘。然后我需要在我的应用程序中解密它并读取值。我看到有一个库Secureconfig,但它仅适用于 python 2。python 中是否有类似的 lib 可以帮助我做到这一点?

1

由于您的程序必须包含解密密钥,因此您将无法保护数据不受确定用户的影响,只会使解密变得更加困难。

根据Cryptographic Services — Python 3.7.3 documentation,Python 不包含任何开箱即用的真正密码。只有codecs具有Caesar's cipher和可恢复地数据的标准编码,如 UUEncode 和 Base64。

因此,如果上述内容对您来说还不够好,则需要自己实现对称密码或使用库。例如,请参阅Python AES encryption without extra module

由于在这里不可能实现真正的安全性,因此根据您要为黑客用户制作的难度而定的方法是security through obscurity:使用非标准密码,不要一次解密所有文件,使许多不同的地方加密 / 解密发生,使用混淆代码,添加隐藏的校验和以防止篡改,使用存储在其他意外位置的文件外部的数据位等。

如果您只是想让临时用户无法理解文件,那么当使用文本编辑器查看时,像 Base64 与XOR cipher结合使用已经使数据完全无法理解。

0

@ H.Z.-正如 Ivan 指出的那样,根据您想要的安全级别,有很多选择。

我正在做一个类似的项目,你所描述的,我使用 cryptogrophay 库(https://cryptography.io/en/latest/

您可以使用 pip 轻松安装。

我在一个步骤过程中使用它来加密我的配置文件-然后在我的主 Python 文件中有一个单独的脚本来解密。

希望这个信息有助于如果你还没有解决这个问题。

0

我已经写了一个 ConfigParser 继承类,它将 AES-256 对称加密添加到 ConfigParser 配置文件中。类本身以及它的底层加密已经在几个项目的生产中,并且经过了很好的测试。

用法与 ConfigParser 非常相似,除了您使用 AES 密钥并编写二进制文件而不是文本。

使用pip install configparser_crypt安装

如何使用 ConfigParserCrypt 创建加密的 ini 文件

from confiparser_crypt import ConfigParserCrypt
file = 'config.encrypted'
conf_file = ConfigParsercrypt()
# Create new AES key
conf_file.generate_key()
# Don't forget to backup your key somewhere
aes_key = conf_file.aes_key
# Use like normal configparser class
conf_file.add_section('TEST')
conf_file['TEST']['foo'] = 'bar'
# Write encrypted config file
with open(file, 'wb') as file_handle:
    conf_file.write_encrypted(file_handle)

如何读取加密的 ini 文件

from confiparser_crypt import ConfigParserCrypt
file = 'config.encrypted'
conf_file = ConfigParsercrypt()
# Set AES key
conf_file.aes_key = my_previously_backed_up_aes_key
# Read encrypted config file
conf_file.read_encrypted(file)
print(conf_file['TEST']['foo'])

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(495)
如何使用Erlang分布函数Scipy
上一篇
如何在VisualStudio中自动格式化代码
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(55条)