Chinaunix首页 | 论坛 | 博客
  • 博客访问: 245146
  • 博文数量: 35
  • 博客积分: 198
  • 博客等级: 入伍新兵
  • 技术积分: 443
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-28 10:30
文章分类

全部博文(35)

文章存档

2015年(5)

2014年(14)

2013年(8)

2012年(7)

2011年(1)

我的朋友

分类: Mysql/postgreSQL

2015-06-18 22:21:43

MYSQL 在认证的过程中,客户端并不将MYSQL登录密码传输到服务端进行验证,在client连接到服务端后,服务端随机生成一个公钥,然后将公钥发给client端,client端利用公钥+登录密码生成一个新的随机串,然后将新的串发往服务端。服务端check字符串反解析,具体过程如下:

  SERVER:  public_seed=create_random_string()
           send(public_seed)


  CLIENT:  recv(public_seed)
           hash_stage1=sha1("password")
           hash_stage2=sha1(hash_stage1)
           reply=xor(hash_stage1, sha1(public_seed,hash_stage2)

           // this three steps are done in scramble() 
           send(reply)
  SERVER:  recv(reply)
           hash_stage1=xor(reply, sha1(public_seed,hash_stage2))
           candidate_hash2=sha1(hash_stage1)
           check(candidate_hash2==hash_stage2)
           // this three steps are done in check_scramble()
阅读(4272) | 评论(0) | 转发(0) |
0

上一篇:Python学习--- 俩数组值交换和之差最小问题

下一篇:没有了

给主人留下些什么吧!~~