首页 > 数据库 > PostgreSQL > PostgreSQL的认证过程(md5)
1、客户端向服务端发送连接请求;
2、服务端根据pg_hba.conf匹配认证方式,并发送认证方式和4位随机数(md5)给客户端;
3、客户端输入密码,两次加密后发送给服务端;
4、服务端对客户端发送的密码进行对比验证;
PerformAuthentication |-> enable_timeout_after --> 设置认证超时时间 |-> ClientAuthentication |-> hba_getauthmethod --> 获取认证方法 |-> CheckPWChallengeAuth |-> get_role_password --> 获取服务端用户真实密码(加密) |-> CheckMD5Auth |-> pg_strong_random --> 生成4位的随机数 |-> sendAuthRequest --> 将认证方式和4位的随机数发送给客户端 |-> recv_password_packet --> 接收客户端的数据 |-> md5_crypt_verify |-> pg_md5_encrypt --> 将服务端的密码(已加密)和4位随机数再次进行加密 |-> pg_md5_hash --> md5 + [(密码+4位随机数)算出md5值 ] |-> strcmp(client_pass, crypt_pwd) --> 和客户端的密码比较
............
本文完整内容请见:
%E7%9A%84%E8%AE%A4%E8%AF%81%E8%BF%87%E7%A8%8B%EF%BC%88md5%EF%BC%89/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69982913/viewspace-2715831/,如需转载,请注明出处,否则将追究法律责任。