簡體   English   中英

如何通過普通的Java套接字實現(SSL / TLS)安全通信

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM