[英]How to implement (SSL/TLS) secure communication through normal Java Sockets
如何保護普通的socket通信? 我寫了一個Jabber客戶端,只能連接到專用的SSL端口(5223)(使用SSLSocket)。 通常的方法是連接到Jabber標准端口5222並請求starttls
。 我怎樣才能做到這一點?
期望管理:我沒有用Jabber試過這個。 但它適用於GMail的SMTP服務器,所以也許......
以下是如何將套接字升級到SSL套接字,其中socket
是原始(非TLS)連接:
SSLSocket sslSocket = (SSLSocket) ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket(
socket,
socket.getInetAddress().getHostAddress(),
socket.getPort(),
true);
InputStream inputStream = sslSocket.getInputStream();
OutputStream outputStream = sslSocket.getOutputStream();
// reads from the socket
Scanner scanner = new Scanner(inputStream);
// writes to the socket
OutputStream outputStream = new BufferedOutputStream(outputStream);
我不完全確定你在問什么,但你可以使用SSLSocketFactory.createSocket()方法在現有的普通(非安全)套接字上分層安全套接字。 這是使用starttls之類的東西“升級”套接字的一種方法。 但這是艱難的做事。 幾乎可以肯定,您的XMPP庫將提供對此類功能的高級訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.