0

我有将数据从客户端传输到服务器的项目,我在 java 中使用 ssl,我使用一个密钥来加密和解密我使用 keytool 创建密钥

服务器 Security.addProvider(new Provider());

        //Specifying the Keystore details
        System.setProperty("javax.net.ssl.keyStore","testkeystore.ks");
        System.setProperty("javax.net.ssl.keyStorePassword","mypass");

        // Enable debugging to view the handshake and communication which happens between the SSLClient and the SSLServer
        // System.setProperty("javax.net.debug","all");
    }


            // Initialize the Server Socket
            SSLServerSocketFactory sslServerSocketfactory = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
            sslServerSocket = (SSLServerSocket)sslServerSocketfactory.createServerSocket(intSSLport);

客户端 System.setProperty("javax.net.ssl.trustStore", "/home/lap/NetBeansProjects/Dionaea-001/testkeystore.ks");

    {
        // Registering the JSSE provider
        Security.addProvider(new Provider());
    }

    try {
        // Creating Client Sockets
        SSLSocketFactory sslsocketfactory = (SSLSocketFactory)SSLSocketFactory.getDefault();
        SSLSocket sslSocket = (SSLSocket)sslsocketfactory.createSocket(strServerName,intSSLport);

我的问题可以在 SSL 中使用一个密钥吗?我如何知道加密 AES 或 DES 的类型?

4

1 回答 1

1

服务器密钥库中的证书和私钥仅用于验证服务器。

使用 SSL/TLS,加密密钥是在握手期间协商的共享密钥。

您可以从密码套件中查看使用的加密算法,SSLSession一旦建立连接,您就可以从中获得。(您可以从 获取会话SSLSocket。)

于 2012-11-25T19:17:20.820 回答