我成功地使用Perl :: DBI模块使用Perl创建了一个SQLite3数据库。 我想知道是否有办法将数据库的加密添加到我现有的Perl代码中?
我仔细阅读了以下2个链接:
但提供的示例似乎只包括专有软件或C#代码(特别是这里的https://stackoverflow.com/a/24349415/3186538)。
提前致谢。
答案 0 :(得分:1)
好吧,您可以通过任何Crypt::*
模块(::DES
,::Blowfish
,::IDEA
等与::CBC
一起运行您的数据,然后可能用base64
对其进行编码以获取文本,然后再将其写入数据库。当然,在阅读时反转操作。您甚至可以创建一个位于Perl::DBICrypt
之上的Perl::DBI
模块,并自动执行此操作。
但是,这在很大程度上取决于您将如何使用它。如果您只是担心某人窃取和使用您的数据,加密将是可行的,因为没有密钥,它将是无用的。
另一方面,如果您尝试保护您分发的系统中的数据,则该密钥将可供攻击者使用(因为没有它,您的代码将无法正常工作)。因此,在这种情况下加密最多只是一个小小的不便。
如果您将密钥远离攻击者(例如,如果Perl代码在您控制的应用服务器中运行),那么它才能真正起作用。
基本上任何解决方案都会对攻击者可以访问的框上的数据进行解密。