【问题标题】:SHA256 hash in Python 2.4Python 2.4 中的 SHA256 哈希
【发布时间】:2010-11-22 14:59:58
【问题描述】:

有没有办法在 Python 2.4 中计算 SHA256 哈希? (我强调:Python 2.4)我知道如何在 Python 2.5 中做到这一点,但不幸的是它在我的服务器上不可用,并且不会进行升级。我和this 问题中的那个人有同样的问题,但使用的是 Python 2.4。

【问题讨论】:

    标签: python sha256 python-2.4


    【解决方案1】:

    是的,你可以。在 Python 2.4 中,有一个 SHA-1 模块可以做到这一点。见the documentation。

    但是,请记住,从该模块导入的代码在使用较新的 Python 运行时会导致 DeprecationWarnings。

    好的,由于要求严格为 SHA-256,因此在标准库中使用 SHA-1 模块是不够的。我建议查看pycrypto,它有一个 SHA-256 实现。还有一些 Windows 二进制版本可以匹配较旧的 Python,请点击来自 Andrew Kuchlings old PyCrypto page 的链接。

    【讨论】:

    • 如果您要对密码进行哈希处理,我永远不建议您使用 SHA-1。它已被破解,不被认为是不安全的。使用 MD5 散列密码也被认为是不安全的。如果您无法在较新版本的 Python 中访问新的哈希库,我建议您对“ssh-keygen”(在 Linux 上)进行系统调用并读取它创建的文件。
    • 说“曾经”有点夸张,早在2009年写问答的时候SHA1就OK了。作为参考,Marc Stevens 的第一个使 SHA1 哈希冲突的理论方法直到 2013 年才发布。但是,是的:了解您的哈希并了解您选择的安全含义。
    • 我听到了。当我说“永远”时,我的意思是“从这一刻起永远”。但是,我认为这是暗示。你确实提出了一个很好的观点。我认为您的答案在编写时很好。也许可以修改以与时俱进?
    【解决方案2】:

    你可以使用sha模块,如果你想保持兼容,你可以像这样导入它:

    try:
        from hashlib import sha1
    except ImportError:
        from sha import sha as sha1
    

    【讨论】:

    • 贴出的代码计算SHA-1,计算SHA-256没用。
    【解决方案3】:

    在http://pypi.python.org/pypi/hashlib 有一个向后移植的hashlib 版本,我只是向后移植了较新的hmac 版本并将它放在http://pypi.python.org/pypi/hmac

    【讨论】:

      猜你喜欢
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      相关资源
      最近更新 更多