首页 > 解决方案 > 如何从 int(hashlib.sha256(string.encode()).hexdigest) 获取字符串输出?

问题描述

我正在尝试解决一个问题,该问题需要我定义一个函数,该函数将正整数 T 作为输入并输出一个字符串,以便

int(hashlib.sha256(string.encode()).hexdigest) = < T

是合格的。但是,我不明白 Python 如何输出字符串。我曾想过生成随机字符串或使用 str() 但这似乎不合理。

我将如何解决这个问题?非常感谢。

标签: python-3.xstringsha256

解决方案


hashlib 不会像那样工作 hashlib.sha256() 是一个类,您需要使用字符串值更新 gettin 散列十六进制值,并且您不能仅使用 int() 转换十六进制值,您需要将基本参数添加为 16

用法:

import hashlib
string="dumb"
hs=hashlib.sha256() # hs is element the hashlib.sha256() class
hs.update(string.encode()) # update hs with a string value
#now you can get hashed hex value
hs_hex=hs.hexdigest() #string hex hash value
hs_int=int(hs_hex,16) #int hash value
hs_int_str=str(hs_int) #string int hash value

推荐阅读