Home >Database >Mysql Tutorial >PostgreSQL数据库用户密码的加密方式

PostgreSQL数据库用户密码的加密方式

WBOY
WBOYOriginal
2016-06-07 14:54:012417browse

PostgreSQL数据库用户密码的加密方式 先谈一下postgresql中涉及用户密码的几张表: select username,passwd from pg_shadow; select rolname,rolpassword from pg_authid; select usename,passwd from pg_user; select rolname,rolpassword from pg_roles ww


PostgreSQL数据库用户密码的加密方式

 

先谈一下postgresql中涉及用户密码的几张表:

 

select username,passwd from pg_shadow;

select rolname,rolpassword from pg_authid;

select usename,passwd from pg_user;

select rolname,rolpassword from pg_roles

  www.2cto.com  

前面两张表存有加密后的密码字符串,后面两张表存的密码都是***,我们感兴趣的前面两张表,通过简单的测试我们可以发现,同样的用户,使用同样的密码得到加密后的字符串是一样的。 

 

一般都知道pg_hba.conf里面有配置了MD5方式来访问加密,所以用户表里存的密码数据也该是md5加密后的数据,但到底是怎么组合加密的就不得而知了。 

 

近来读到这块源码时发现postgresql的加密方式是md5(user+passwd)的方式来保存的。 

比如用户是test,密码是123456,那么这个pg_shadow里面的passwd必然是 

47ec2dd791e31e2ef2076caf64ed9b3d 

可以用select md5('test123456')来验证。 

  www.2cto.com  

知道了这一点,我们就可以调整源码,将加密方式做点改善可以增强一定程度的安全性。 

 

一般人我不告诉他。
 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn