加密将捆绑在pyexe文件中的Sqlite db文件

时间:2010-10-03 04:55:26

标签: python database sqlite encryption

我一直致力于开发此分析工具,以帮助解释和分析捆绑在软件包中的数据库。对我们来说,以只能使用我们的软件访问的方式保护数据库非常重要。在Python中实现它的最佳方法是什么?

我知道可能没有确定的解决方案,但威慑是真正重要的。

非常感谢你。

2 个答案:

答案 0 :(得分:4)

有人通过将SQLCipher重建为DLL并替换Python的sqlite3.dll here,让Python和SQLCipher一起工作。

答案 1 :(得分:3)

这个问题大约每月一次在SQLite用户邮件列表中出现。

无论您使用多少加密等,如果数据库位于客户端计算机上,则解密密钥也将在某个时刻位于计算机上。攻击者将能够获取该密钥,因为它是他们的计算机。

更好的方法是考虑金钱 - 坏人需要花多少才能获得数据。这通常最多只需几百美元。只需要任何一个人获得密钥,他们就可以为每个人发布数据库。

所以要么去Donal提到的网络服务,要么只花几分钟来模糊数据库。例如,如果您使用APSW,那么您可以在几行中编写一个VFS来对数据库内容进行异或,这样常规的SQLite就不会打开它,文件查看器也不会显示正常的SQLite标题。 (APSW中有示例代码,显示了如何执行此操作。)

因此,任何拥有数据库内容的人都必须知情。