python - 通过网络或任何其他 key 交换进行 Diffie-Hellman key 交换

标签 python python-3.x encryption public-key-encryption grpc

构建端到端加密服务的正确方法是什么?

我的思考过程 -

  1. 为用户创建公钥和私钥,在握手阶段(当两个用户聊天发起聊天时)使用公钥与接收者共享 key

  2. 一旦双方获得 key ,我想 pycrypto 库可以用于加密 Tx 端消息,并且可以使用第一步中共享的 key 在 Rx 端解密。

我的问题 - 如何实现 DH key 交换?我们有 python 库吗?

PS:该应用程序正在使用 gRPC 构建,

谢谢

最佳答案

不重新发明轮子怎么样:

import socket
import ssl
s = socket.socket(...)
secure = ssl.wrap_socket(s, keyfile="mykey", certfile="mycert")

openssl 将建立一个 ssl session 并进行协商。然后您可以通过安全套接字进行通信。

关于python - 通过网络或任何其他 key 交换进行 Diffie-Hellman key 交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52652937/

相关文章:

python - "No module named ' cv2 ' "但已安装

python - Pandas 将不同大小的数据帧连接到列末尾

python - Flask Upload 如何配置文件存储路径

java.security.NoSuchAlgorithmException :Cannot find any provider supporting AES/ECB/PKCS7PADDING

python - Django - 一对一序列化器创建函数

python-3.x - 处理 python3 asyncio 中永不终止的任务

python - __main__ 是否保证始终可导入?

python-3.x - python 3 : how to make strip() work for bytes

java - PC 和 Android 之间发送加密数据时 AES/CTR/NoPadding 最后一 block 丢失

java - KeySpec 抛出 "Salt not found"- 不需要盐