python - 解释器需要很长时间来处理数字
问题描述
我正在尝试实现 One Time Pad 加密,在握手过程中,python 停留时间太长而无法执行此操作
public = (private ** prime1) % prime2
其中 public 是我打算发送的数字 private 是由 ramdom.getrandbits (128) 生成的随机 128 位数字 prime1 和 prime2 是两个常见的素数 128bits
解决方案
原则上,您可以使用函数的三参数形式pow()
。它使用更有效的模幂运算算法。
public = pow(private, prime1, prime2)
但是,我担心您将其描述为用于“一次性加密”的方式。一次性填充需要一个随机的预共享密钥,该密钥大于将要传输的所有消息的总大小。您正在实施的看起来更像是 DH 密钥交换,它不是此过程的一部分,也不能用于它。
推荐阅读
- r - 关于过热包中的ggsave
- bootstrap-4 - 带有下拉菜单的药丸 - 使下拉菜单处于活动状态
- javascript - 在 Reactjs (material-ui) 中交换两个 TextField 的值
- apache-kafka - 如何停止/终止融合的 JDBC 源连接器?
- javascript - Require 没有出现在我的代码中,但是 webpack 不断抛出错误“require is not defined”。
- rust - 理解 rust Option as_mut 方法
- c# - 从读取 CSV 文件的字符串中删除 '\' - C#
- javascript - Response.body 不返回任何超测试,但在服务器上工作正常?
- json - 将数据传递给在前一个 [Swift / SwiftUI] 中获取的下一个 POST 请求
- python - 能够以交互方式接收和发送输入到另一个脚本的 Python 脚本