gpt4 book ai didi

java - 从安全套接字中解密数据

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:52 25 4
gpt4 key购买 nike

我正在使用 Java 开发服务器应用程序。我已经成功地通过了通信过程的握手部分,但是我该如何解密我的输入流呢?这是我设置服务器的方式:

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;

import javax.net.ServerSocketFactory;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;

import org.json.me.JSONException;

import dictionary.Dictionary;


public class Server {

private static int port = 1234;

public static void main(String[] args) throws JSONException {

System.setProperty("javax.net.ssl.keyStore", "src/my.keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "test123");

System.out.println("Starting server on port: " + port);
HashMap<String, Game> games = new HashMap<String, Game>();
final String[] enabledCipherSuites = { "SSL_RSA_WITH_RC4_128_SHA" };

try{
SSLServerSocketFactory socketFactory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
SSLServerSocket listener = (SSLServerSocket) socketFactory.createServerSocket(port);
listener.setEnabledCipherSuites(enabledCipherSuites);
Socket server;

Dictionary dict = new Dictionary();
Game game = new Game(dict); //for testing, creates 1 global game.
while(true){
server = listener.accept();
ClientConnection conn = new ClientConnection(server, game, "User");
Thread t = new Thread(conn);
t.start();
}
}
catch(IOException e){
System.out.println("Failed setting up on port: " + port);
e.printStackTrace();
}
}
}

我使用 BufferedReader 来获取从客户端发送的数据:

BufferedReader d = new BufferedReader(new InputStreamReader(socket.getInputStream()));

握手完成后,我似乎正在获取加密数据。我在网上做了一些研究,似乎我可能需要使用密码,但我不确定。有任何想法吗?

最佳答案

当底层源是 SSLSocket 时,available() 总是返回 0,ready() 总是返回 false。

使用这两种方法中的任何一种的正当理由很少(如果有的话)。刚读。知道有或没有任何可用数据对您没有任何好处。您仍然必须阅读,所以阅读,并且您可以免费获得阻塞,而不必编写代码,也不会因为您睡了 1000 毫秒而数据在 1 毫秒后到达而浪费时间,或者因为您做了相反的事情而浪费了周期。根据 available() 返回的值自定义缓冲区大小没有任何好处:只需使用固定大小的缓冲区并将其分配到读取循环之外,从而也可以节省 GC 周期。

关于java - 从安全套接字中解密数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2581694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com