MYSQL是认证过程中,客户端将MYSQL登录密码转发给服务器端而不进行认证。 客户端连接到服务端后,服务端会随机生成公钥,并将公钥发送给客户端。 客户端使用公钥登录密码生成新的随机字符串,并将新字符串发送到服务端。 服务端check字符串的逆分析。 具体步骤如下。
服务器: public _ seed=create _ random _ string (
send (公共_ seed ) )。
客户端: recv (公共_ seed )。
hash _ stage1=sha1 (密码) )。
hash_stage2=sha1(hash_stage1)
reply=xor(hash_stage1,sha1 ) public_seed,hash_stage2) () ) ) ) ) ) ) ) ) )。
//thisthreestepsaredoneinscramble (
发送(复制)
服务器: recv (reply )
hash_stage1=xor(reply,sha1 ) public_seed,hash_stage2) )
candidate _ hash2=sha1 (hash _ stage1)
检查(candidate _ hash2==hash _ stage2) )。
//thisthreestepsaredoneincheck _ scramble ()
阅读(2651 ) |评论(0) |转发)0|