【发布时间】:2015-12-17 14:33:24
【问题描述】:
我正在执行一项任务,我必须建立 Diffie-Helman 密钥交换。为了加快速度,我在 Python 中使用了位运算符,并且一切都在编程方面运行良好,但我必须执行奇偶校验和,而且我认为我对这是什么或如何正确理解它有效。
基本上,我需要能够获取可变长度(最多 2048 位)的密钥,将其分解为 64 位字,然后执行校验和。我不确定这到底意味着什么。要使用 Python 将一个单词分解为 64 位单词,该怎么做呢?我想一旦我这样做了,我应该能够对单词执行 XOR 操作以获得 64 位输出。目前,虽然我被困在如何在 Python 中正确地将一个单词分解为 64 位块?
【问题讨论】:
-
不相关:这听起来不对:“为了加快速度,我在 Python 中使用位运算符” -- 位运算不是加速 Python 代码(你想要the opposite as a rule: less Python operations on more data at a time)。
-
你输入的
int、bytes的类型是什么? -
JF,是的,您可能是对的,但是我们不允许使用 pow() 函数,并且与使用 bit- 相比,在 python 中执行类似 2**256 的操作需要很长时间明智的经营者。输入的类型是 int。
-
这是相反的任务:How to combine two 32-bit integers into one 64-bit integer?。它应该让您了解如何从 64 位整数密钥中截取 32 位整数块并从那里继续(从 2048 位密钥中截取 64 位块)。
-
我认为将某些内容分解为位的最佳方法是将整数转换为二进制,然后我是否只是将其拆分为 64 个长度的块?是这么简单还是我错过了什么?
标签: python