我正在尝试在Python中建立一个安全的套接字连接,而且我很难使用它的SSL位.我找到了一些如何与SSL建立连接的代码示例,但它们都涉及密钥文件.我正在尝试连接的服务器不需要接收任何密钥或证书.我的问题是我如何用SSL包装python套接字连接.我知道一个事实,我想使用的密码是ADH-AES256-SHA,协议是TLSv1.这就是我一直在尝试的:
import socket
import ssl
# SET VARIABLES
packet, reply = "<packet>SOME_DATA</packet>", ""
HOST, PORT = 'XX.XX.XX.XX', 4434
# CREATE SOCKET
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(10)
# WRAP SOCKET ???
ssl.wrap_socket(sock, ssl_version="TLSv1", ciphers="ADH-AES256-SHA")
# CONNECT AND PRINT REPLY
sock.connect((HOST, PORT))
sock.send(packet)
print sock.recv(1280)
# CLOSE SOCKET CONNECTION
sock.close()
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我没有收到任何错误,但我得到一个空白的响应.当尝试在命令行中调试此代码时,通过在python终端中键入并逐行粘贴代码,我得到的是我在运行时假设的状态代码sock.send(packet).我得到的整数响应是26.如果有人知道这意味着什么,或者无论如何可以提供帮助,我们将不胜感激.提前致谢!
我明天参加高级开发考试,但我仍然坚持加密的主题.我已经在http://support.microsoft.com/kb/246071上阅读了它.不过我还是很困惑.
如果使用非对称加密使用公钥加密消息,解密器将如何知道用于解密它的私钥?当然,唯一的方法是将私钥公开,但这会破坏非对称加密的目标.
有人可以用一种非技术人员能够理解的方式来解释这个问题吗?它唯一的非对称加密我不明白,而不是对称加密.提前致谢.
问候,
理查德
编辑:所以在Web应用程序的情况下总结所有答案(我需要知道的具体用途):
这都是正确的吗?如果是这样,那么我应该知道考试的全部内容.如果有关于这个问题的问题出现的话,我不应该知道我需要知道更多才能达到最高40% - 尽管会提到证书和签名的存在.
谢谢你的帮助.
问候,
理查德
编辑:嗯,我刚刚从考试中退了回来,我认为它相当不错.但是没有关于加密的问题出现了,但是......无论如何,帮助得到了赞赏.谢谢大家.
问候,
理查德