2012-02-19 7 views
0

私はプロジェクトに取り組んでおり、雇用主から私に提供されているcPanelはpython 2.4.3(古いバージョン)です。問題は私がpycryptoを使用する必要があることです。だから私はSHA256をインポートしています。ここでの問題はSHA256.pyです:pycryptoとpython 2.4.3の問題

try: 
    import hashlib 
    hashFactory = hashlib.sha256 

except ImportError: 
    from Crypto.Hash import _SHA256 
    hashFactory = _SHA256 

hashlibので、それは_SHA256をインポートするために行ってきましたが、Cryto.Hashフォルダには_SHA256がないのpython 2.4.3では利用できません。これはpycryptoのバグですか?または私はこのモジュールをPython 2.4.3で使用できませんか?この問題の回避策はありますか?

答えて

0

standalone hashlib libraryを試してみることができます。

+0

私はhashlibのインポートから 'ライブラリをダウンロードして、このエラーを得たが はImportErrorをSHA256:それはパッケージ内のモジュールはありませんが、' 'hashlib''はモジュールであるためだ名前sha256' –

+0

をインポートすることはできません。 '' import hashlib''、 '' hashlib.sha256() ''はあなたが望むものです。詳細はhttp://docs.python.org/library/hashlib.htmlを参照してください。 –

+0

このモジュールを最初にインストールする必要はありますか? python setup.py installを使用しますか?私はこのライブラリをインストールせずに直接使用しています。そして、 'import hashlib'を実行した後、' hashlib.sha256() 'を実行すると、このエラーが発生します:' hashlib.py、行63、__get_builtin_constructor、import _md5 ImportError:_md5 ' –

2

PyCryptoのかなりのアルゴリズムは、純粋なPythonではなく、Cで書かれています。 SHA256はその中にあります。これを使用するには、完全なpycryptoバイナリパッケージをインストールするか、PyCryptoのREADMEファイルの指示に従わなければなりません。後者の場合は、まず開発環境をインストールする必要があります。

両方のオプションは、プラットフォームやOS固有のものですが、一度行って、それは単に呼び出しの問題になります。

from Crypto.Hash import SHA256 
hash = SHA256.new() 
hash.update('message') 

最初hashlibからそれをインポートしようとする必要はありません。

+1

try except codeはSHA256.pyそのものです。 –

+0

ああ、ごめんなさい。私はあなたのコードだと思った。 – SquareRootOfTwentyThree