我已经编写了一个Java程序,其中客户端通过套接字(不是SSLSocket!)连接到服务器。首先,客户端创建一个RSA密钥对,然后将公钥发送到服务器。然后,服务器用一个公共密钥响应,客户端使用该公共密钥来创建用于身份验证的RSA编码的登录密码。
这是一种安全的方法吗?如果不能,那么如何确保密码的安全性?
除非您是密码学专家,否则您几乎永远不会自己实现握手协议。
相反,由于我可以假定您使用的是TCP,UDP或HTTP之类的协议,因此可以使用Netty之类的库,也可以仅使用内置的TLS / SSL支持。
SSLSocket(我知道您说过您没有使用过)类,没有第三方使用。