JSSE SSL:获取用于加密和完整性的算法

JSSE SSL: Get algorithm that is used for encryption and Integrity

我正在使用 Java JSSE SSL 来实现一个简单的安全应用程序。一切正常。但是SSL在客户端和服务器之间协商算法,他们选择他们支持的算法,我不知道他们选择了哪种算法。我只需要知道:

对于身份验证: - 客户端和服务器选择了哪种算法,例如Diffie-Hellman。 有没有办法强制客户端和服务器使用某种算法。

完整性(散列): - 客户端和服务器选择了哪种算法,例如SHA-1。 有没有办法强制客户端和服务器使用某种算法。

对于机密性(加密): - 客户端和服务器选择了哪种算法,例如DES。 有没有办法强制客户端和服务器使用某种算法。

所有这些都在密码套件名称的各个部分指定,您可以通过SSLSession获得。您可以通过 SSLSocket.setEnabledCipherSuites() 影响启用哪些密码套件,但前提是对等方也启用了这些密码套件。一般来说,这样做不是一个好主意。通常,密码套件仅在服务器上受到限制。