我有将数据从客户端传输到服务器的项目,我在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的类型?
答案 0 :(得分:1)
服务器密钥库中的证书和私钥仅用于验证服务器。
使用SSL / TLS,加密密钥是握手期间协商的共享密钥。
您可以查看cipher suites中使用的加密算法,您可以在建立连接后从SSLSession
获取该加密算法。 (您可以从SSLSocket
获取会话。)