我试图在python中实现论文中的使用CRT动态设置智能电网的私有数据聚合组描述的协议。
为了做到这一点,我需要计算以下值:

我知道,从python3.6开始,您可以按以下方式计算SHA3值:
import hashlib
hash_object = hashlib.sha3_512(b'value_to_encode')
hash_value = hash_object.hexdigest()我想知道您是否应该解决这个问题,因为,据我所知,SHA-3函数返回一个字符串,因此不能在n次方的函数中计算。
我在看什么?
发布于 2017-06-16 22:07:21
如果我们定义哈希函数$H:{0,1}^* \右旋{0,1}^n$,即产生$n$位输出的哈希函数,则可以始终将其输出的二进制数据$h$解释为整数。此摘要的整数值为$\sum_{i=0}^n h_i 2^i$,换句话说,摘要是整数的基2表示形式。
在您的例子中,由于python有类型的概念,我们需要接受二进制字符串并将其转换为整数类型。内置的int函数可以为我们做到这一点:
int(x=0) ->整数 int(x,base=10) ->整数 将数字或字符串转换为整数,如果不给参数,则返回0。如果x是一个数字,则返回x.__int__()。对于浮点数,这将截断为零。 如果x不是一个数字或给定基,那么x必须是一个字符串、字节或字节数组实例,表示给定基中的整数文字。文字可以在“+”或“-”前面加上空格。基默认为10,有效基数为0和2-36。基0意味着从字符串中将基解释为整数文本.。int('0b100',base=0) 4.
hexdigest调用将返回基数为16的十六进制字符串,因此您需要执行类似于int_value = int(hash_value, 16)的操作。
https://stackoverflow.com/questions/44601756
复制相似问题