我正在编写一个操纵密码保护的zip文件的perl脚本。因此,我需要存储&检索密码来执行此操作。我有三个存储密码的选项:
无论我选择什么,都必须在Windows下使用Perl,并且易于使用。
有什么建议吗?
答案 0 :(得分:4)
在Windows上运行一些Perl加密包,您可以使用ActivePerl包管理器下载PPM。
您还可以使用这些模块的纯Perl版本(查找以_PP结尾的名称)。
我在CPAN上找到了这些模块:
答案 1 :(得分:3)
方法3的主要问题是,在哪里将密钥存储到包含密码的文件中?你可以使用Base64进行方法2,但很容易“解密”。
答案 2 :(得分:1)
这里应该没有问题。您必须使用足够强大的加密方案。您被委托处理敏感数据,您必须尽一切可能保护它。
如果您使用的是Windows,则可以利用DPAPI加密AESkey并将其存储在注册表中。 Perl具有与Win32库交互的模块。
最佳加密是主观的,但截至2009年1月,AES 128足以加密您的数据。
如果用户不完全了解他们正在做什么,即使是最好的加密方案也会失败。
答案 3 :(得分:1)
显然,你是对的#1出局了。
出于基本相同的原因,#2也出局了。这不安全。
对于#3,我可以建议这也是出局。解密密码会使其进入更脆弱的状态进行比较。但是,如果您打算这样做,我建议您使用Crypt :: CBC WITH Crypt :: Blowfish Cipher Block Chaining。
[推荐]#4:不是存储用于检索,解密的密码,而是在#3中进行比较。使用Authen::Passphrase一个相当完整和灵活的Perl模块,它允许您比较输入的密码而无需解密/解码原始密码。另请参阅How can I encrypt and decrypt passwords in a Perl CGI program?