无法导入“hashlib”

6

我正在尝试使用sha1加密字符串,但是服务器返回了一个错误:

"No Module Named hashlib"

通过使用以下代码:

import hashlib
encrypted = hashlib.sha1(string)
encrypted = encrypted.digest()

我将非常感激您的帮助,

谢谢, Guy Dor


我猜你使用的Python版本太旧了,根据http://docs.python.org/library/hashlib.html,hashlib仅适用于Python 2.5及以上版本。 - Tedil
值得注意的是,即使在提出这个古老的问题时,Python 2.5已经发布了将近5年,而2.7和3.2也都已经发布了。 - undefined
5个回答

6

你可能使用的是Python版本小于2.5。请改用sha模块。

以下是两者的区别:

>>> import sha
>>> s = sha.new()
>>> s.update('hello')
>>> s.digest()
'\xaa\xf4\xc6\x1d\xdc\xc5\xe8\xa2\xda\xbe\xde\x0f;H,\xd9\xae\xa9CM'

vs

>>> import hashlib
>>> hashlib.sha1('hello').digest()
'\xaa\xf4\xc6\x1d\xdc\xc5\xe8\xa2\xda\xbe\xde\x0f;H,\xd9\xae\xa9CM'

1
此外,对于其他人在这里结束的情况,但对于hashlib.md5():
import md5

m = md5.new()
...

0
在一些 Python 衍生版本(如 Jython)中,可以使用以下代码:
import _hashlib
h =  _hashlib()
md5Res = h.openssl_md5("helloYou").hexdigest()
print(md5Res)

0

hashlib 是 Python 2.5 中最新的模块/库。

但是服务器肯定运行着 Python 2.4 或更早版本。


0
找到与模块未找到相关的错误最简单的方法是验证它们的路径。我完全能够通过控制台运行Python Facebook广告API代码,但当我尝试通过C#运行此代码时,我遇到了几个与路径相关的错误。
在导入语句之前添加以下语句,以提供“hashlib.py文件”的路径。

导入 sys

sys.path.append('C:\Python34\Lib')

它解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接