什么是最好的密码加密&;与Perl一起使用的解密库?

什么是最好的密码加密&;与Perl一起使用的解密库?,perl,encryption,passwords,encode,Perl,Encryption,Passwords,Encode,我正在编写一个perl脚本,用于处理受密码保护的zip文件。因此,我需要存储和检索密码来执行此操作。我有三个存储密码的选项: 以纯文本存储。在你加入之前,我已经排除了这个选项 使用一个简单的密码模仿器来防止偶然/意外访问(即使是DBA) 使用适当的加密/解密库,如Blowfish或AES 无论我选择什么,都必须在Windows下以Perl运行,并且易于使用 有什么建议吗 方法3的主要问题是,您将包含密码的文件的密钥存储在哪里?方法2可以使用Base64,但这很容易“解密”。这里应该没有问题。必须

我正在编写一个perl脚本,用于处理受密码保护的zip文件。因此,我需要存储和检索密码来执行此操作。我有三个存储密码的选项:

  • 以纯文本存储。在你加入之前,我已经排除了这个选项
  • 使用一个简单的密码模仿器来防止偶然/意外访问(即使是DBA)
  • 使用适当的加密/解密库,如Blowfish或AES
  • 无论我选择什么,都必须在Windows下以Perl运行,并且易于使用


    有什么建议吗

    方法3的主要问题是,您将包含密码的文件的密钥存储在哪里?方法2可以使用Base64,但这很容易“解密”。

    这里应该没有问题。必须使用足够强的加密方案。您被委托处理敏感数据,您必须尽一切可能保护它

    如果您使用的是Windows,则可以利用DPAPI加密AESkey并将其存储在注册表中。Perl具有与Win32库交互的模块

    最好的加密是主观的,但是AES 128截至2009年1月的强度足以加密您的数据


    如果用户不完全理解他们在做什么,即使是最好的加密方案也可能失败。

    有一些在Windows上运行的Perl加密软件包,您可以使用ActivePerl软件包管理器下载PPM

    您还可以使用这些模块的纯Perl版本(查找以_PP结尾的名称)

    我在CPAN上发现了以下模块:


    显然,你是对的,1出局了

    而#2也出于基本相同的原因出局。它不安全

    至于#3,我想说的是,这也是不可能的。解密密码会使其处于更易受攻击的状态,以便进行比较。但是,如果您要这样做,我建议您将Crypt::CBC与Crypt::Blowfish结合使用


    [推荐]#4:而不是像#3那样存储用于检索、解密和比较的密码。使用一个相当完整且灵活的Perl模块,该模块允许您比较输入的密码,而无需解密/解码原始密码。另请参见

    为什么会有人投反对票?这是一个问题,您需要将密钥存储在某个位置。但即使这个问题解决了,你如何防止恶棍在你的代码中插入“warn$密码”?没错。如果密码不可信的任何人都可以访问您的脚本所运行的机器,那么任何加密都会失败。感谢您尝试帮助我指出问题的根源:)Crypt::Blowfish位于Er。Crypt::CBC是上面的评论应该说的。