PostgreSQL 14中将默认的密码加密由原先的MD5修改成了scram-sha-256,这个从安全性的角度有了一定的提升。
之前我们也说过,MD5的方式如果别人获取了你密码的md5值是会存在安全问题的。因为其存储的方式为md5(‘用户名+密码’)。
PG14之前:
bill=# select rolname,rolpassword from pg_authid where rolname = 'bill';
rolname | rolpassword
---------+-------------------------------------
bill | md5f9d79d4c823b3097f324f3ff2c3b497d
(1 row)
bill=# select md5('billbill');
md5
----------------------------------
f9d79d4c823b3097f324f3ff2c3b497d
(1 row)
PG14:
bill@bill=>select rolname,rolpassword from pg_authid where rolname = 'bill';
rolname | rolpassword
---------+---------------------------------------------------------------------------------------------------------------------------------------
bill | SCRAM-SHA-256$4096:ns1DCdTjy3vhnssk4Mm1Sg==$8k0xbRH++Llap3+ZjieyRxLoiANIXQcrxtgE4wWNesM=:k5I4hqAGhfoNrsCzANEqmhsDVy8IuMTnX658NWGaChY=
(1 row)