【问题标题】:What is the best password encryption & decryption library to use with Perl? [closed]与 Perl 一起使用的最佳密码加密和解密库是什么? [关闭]
【发布时间】:2010-10-02 08:33:59
【问题描述】:

我正在编写一个操作受密码保护的 zip 文件的 perl 脚本。因此,我需要存储和检索密码才能做到这一点。我有三个存储密码的选项:

  1. 以纯文本形式存储。在你加入之前,我已经基本排除了这个选项。
  2. 使用简单的密码修改器来防止随意/意外访问(即使是 DBA)
  3. 使用适当的加密/解密库,例如 Blowfish 或 AES。

无论我选择什么,都必须在 Perl、Windows 下运行并且易于使用。

有什么建议吗?

【问题讨论】:

    标签: perl encryption passwords encode


    【解决方案1】:

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

    【讨论】:

    • 为什么会得到任何反对票?这是一个问题,您需要将密钥存储在某个地方。但即使解决了这个问题,你如何防止不法分子在你的代码中插入“警告 $password”?
    • 没错。如果无法信任密码的任何人可以访问您的脚本运行所在的机器,那么任何加密都会被轻易破坏。
    • 感谢您帮助我指出问题的根源 :)
    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      我在 CPAN 上找到了这些模块:

      【讨论】:

        【解决方案4】:

        很明显,你是对的,#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?

        【讨论】:

        猜你喜欢
        • 2022-01-25
        • 2012-02-26
        • 2012-12-29
        • 1970-01-01
        • 2017-03-21
        • 2011-05-20
        • 1970-01-01
        • 2017-04-20
        • 1970-01-01
        相关资源
        最近更新 更多