在Windows平台上加密Python配置文件中的密码

1 投票
2 回答
1518 浏览
提问于 2025-04-15 23:44

我有一个脚本在远程机器上运行。数据库的信息存储在一个配置文件里。我想把密码加密,这样就没人能直接读取这个文件来获取数据库的访问权限。现在我的设置是这样的:

我的配置文件里的敏感信息是用base64模块编码的。主脚本会解码这些信息。我还用py2exe把脚本编译成可执行文件,这样看代码就稍微难一些。

我想问的是:

有没有更好的方法呢?我知道base64并不是一种很安全的加密方式。有没有办法用一个密钥来编码?我也知道py2exe很容易被逆向工程,这样密钥可能会被找到。还有其他的想法吗?

我还在一台Windows机器上运行这个脚本,所以任何建议的模块都应该能在Windows环境下顺利运行。我知道这个话题有很多其他帖子,但我没有找到一个有Windows解决方案的,或者至少是解释得很清楚的帖子。

2 个回答

0

如果你想要能够找回密码(其实应该把密码进行哈希处理),你可以加点盐来增加安全性。但如果用户能从程序中找到这个盐,那也没什么用。

其实最好的办法是根本不让他们访问数据库。可以使用一个网络服务或者在你的数据库机器上设置一个服务器。

0

老实说,我会选择其他的后端工具。AxCrypt 提供了命令行选项。这样你就可以很方便地用Python写一个包装器(如果你不想直接使用AxCrypt的话)。

当然,如果你想要一种相对简单的方法,而且如果用得当可能会更安全,你可以使用XOR加密——用Python实现这个其实非常简单。只要确保考虑到它的优缺点。不过,如果你对自己能生成一个安全的密钥有信心,这个方法可能适合你。

不过,AxCrypt的解决方案可能同样简单,而且可能更强大。记住,没有什么是绝对安全的,关键在于破解它需要多长时间。

撰写回答