python - 如何保护 Python 3 中套接字客户端和服务器之间传输的消息的安全?

标签 python sockets python-3.x ssl

我正在尝试保护 Python 套接字服务器和客户端之间传输的消息的安全。我做了研究并发现了以下链接: Wrapping an existing socket in SSL - Python Python socket client and server http://the.randomengineer.com/2013/10/11/a-practitioners-overview-to-ssl-and-viewing-the-certificate-chain-from-python/

并查看了Python文档: https://docs.python.org/3.5/library/ssl.html

但我仍然不明白到底如何做到这一点。网上找到的大多数教程都涉及 Apache 或 HTTP 服务器。

这里有一些代码可以准确解释我想要问的问题:

客户:

import socket, sys
host = 'localhost'
port = 5558
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    s.connect((host,port))
except socket.error as e:
    print (str(e))
    y = input('Press enter to close')
    sys.exit()
data = 'test'
s.sendall(str.encode(data))

服务器:

import socket, time
host = ''
port = 5558
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(10)
sock, addr = s.accept()
data = sock.recv(2048)
print(data.decode('utf-8'))

最佳答案

尝试使用AES简单地加密您的消息来自PyCrypto .

示例:

from Crypto.Cipher import AES
from Crypto import Random
IV = Random.new().read(32)
c = AES.new('abcd1234efgh5678', AES.MODE_CFB, IV)
data = c.encrypt('test')

c.decrypt(data)

代码未经测试。

关于python - 如何保护 Python 3 中套接字客户端和服务器之间传输的消息的安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31219771/

相关文章:

Java 套接字 : HTTP/1. 1 505 不支持 HTTP 版本

python-3.x - 我想使用 python 3.x 删除终端中包含两行的打印

python - For循环不更新列表

java - 流损坏异常

python - 如何从与一对一字段相关的两个模型中获取所有对象的列表

java - Android 通过UDP套接字发送对象

python - 检查元素的 pandas 数据框的最快方法是什么?

python - 我不能忽略 Django 上的 pycache 和 db.sqlite,即使它在 .gitignore 中引用它们

python - 使用 python 的 Tkinter。为什么这里需要*args?

python - 如何移动 matplotlib 图中的一条线?