2 是否有公钥 0 生成 0 生成 0 拷贝 4 公钥加密的随机数 1 请求 3 公钥加密的随机数 5 私钥解密的随机数 6 验证解密结果 7 解密结果正确 允许登录 服务器 公钥 客户端 私钥 客户端生成私钥和公钥,并把公钥拷贝给服务器端;客户端发起登录请求,发送自己的相关信息;服务器端根据客户端发来的信息查找是否存有该客户端的公钥,若没有拒绝登录,若有则生成一段随机数使用该公钥加密后发送给客户端;客户端收到服务器发来的加密后的消息后使用私钥解密,并把解密后的结果发给服务器用于验证;服务器收到客户端发来的解密结果,与自己刚才生成的随机数比对,若一样则允许登录,不一样则拒绝登录。