我有一个将数据从客户端传输到服务器的项目,我使用java中的ssl,我使用一个密钥来加密和解密,我使用keytool来创建密钥。
服务器提供程序(Security.addProvider());
//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的类型?
发布于 2012-11-25 19:17:21
服务器密钥库中的证书和私钥仅用于对服务器进行身份验证。
使用SSL/TLS时,加密密钥是在握手期间协商的共享密钥。
您可以从cipher suites中查看所使用的加密算法,一旦建立了连接,就可以从SSLSession
中获得该算法。(您可以从SSLSocket
获取会话。)
https://stackoverflow.com/questions/13552369
复制