首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取SHA3散列函数的指数

取SHA3散列函数的指数
EN

Stack Overflow用户
提问于 2017-06-16 21:49:25
回答 1查看 415关注 0票数 0

我试图在python中实现论文中的使用CRT动态设置智能电网的私有数据聚合组描述的协议。

为了做到这一点,我需要计算以下值:

我知道,从python3.6开始,您可以按以下方式计算SHA3值:

代码语言:javascript
复制
import hashlib
hash_object = hashlib.sha3_512(b'value_to_encode')
hash_value = hash_object.hexdigest()

我想知道您是否应该解决这个问题,因为,据我所知,SHA-3函数返回一个字符串,因此不能在n次方的函数中计算。

我在看什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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)的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44601756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档