我成功使用Perl::DBI模块创建了一个带有SQLite3数据库的代码。我想知道是否有一种方法可以在我的现有Perl代码中向数据库添加加密功能?
我仔细阅读了以下两个链接:
但是提供的示例似乎只包括专有软件或C#代码(特别是这里https://dev59.com/bHM_5IYBdhLWcg3wcCnc#24349415)。
提前致谢。
我成功使用Perl::DBI模块创建了一个带有SQLite3数据库的代码。我想知道是否有一种方法可以在我的现有Perl代码中向数据库添加加密功能?
我仔细阅读了以下两个链接:
但是提供的示例似乎只包括专有软件或C#代码(特别是这里https://dev59.com/bHM_5IYBdhLWcg3wcCnc#24349415)。
提前致谢。
好的,您可以通过任何Crypt::*
模块(例如::DES
、::Blowfish
、::IDEA
等,与::CBC
结合使用)来运行您的数据,然后可能使用base64
进行编码以获取文本,然后将其写入数据库。当然,在读取时要反向操作。您甚至可以创建一个Perl::DBICrypt
模块,位于Perl::DBI
上方,并自动完成此操作。
但是,它非常取决于您如何使用它。如果您只担心有人窃取并使用您的数据,则加密是可行的,因为没有密钥,它将毫无用处。
另一方面,如果您试图保护分发系统中的数据,则密钥将对攻击者可用(因为没有它,您的代码将无法正常工作)。因此,在这种情况下进行加密最多只是个小麻烦。
只有在没有让攻击者接触到密钥的情况下(例如,如果Perl代码在由您控制的应用程序服务器上运行),它才能真正起作用。
基本上,任何在攻击者可以访问的计算机上解密数据的解决方案都会有漏洞。