Может шифровать SSL и дешифровать одним ключом в Java
У меня есть проект для передачи данных от клиента к серверу, и я использую ssl в Java, и я использую один ключ для шифрования и дешифрования, я использую 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);
client 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?
1 ответ
Сертификат и закрытый ключ в хранилище ключей вашего сервера используются только для аутентификации сервера.
С SSL/TLS ключи шифрования являются общими ключами, согласованными во время рукопожатия.
Вы можете увидеть, какой алгоритм шифрования используется из набора шифров, который вы можете получить из SSLSession
как только вы установили соединение. (Вы можете получить сессию из SSLSocket
.)