【发布时间】:2019-02-24 12:34:20
【问题描述】:
函数我已经写出来了:
print(hashlib.sha256(hashlib.sha256(Encode(s))).hexdigest())
但是,似乎出现以下错误:
需要支持缓冲区 API 的对象
我相信这是因为在第二次散列时,输入不是字节形式,因为它已经被散列了。
我怎样才能解决这个问题并将单个字符串哈希两次?
【问题讨论】:
-
使用
sha256.digest(),而不是sha256.hexdigest()。 -
谢谢!但是,问题要求打印出十六进制数字。那我该怎么办?
-
好吧,你当然可以调用
hexdigest()来最终应用sha256,或者你可以调用得到的字节对象上的hex()方法。选择是你的,做一些实验。为了清楚起见,问题从不要求打印出十六进制值。 -
Encode在这里做什么?这很可能是罪魁祸首。如果你不确定你的错误是在哪里产生的,那就把 split the line 分成多个语句。
标签: python cryptography sha256