PostgreSQL学习之SCRAM-SHA-256加密认证

        PostgreSQL数据库保存用户密码的方式为加密保存(准确的说是保存用户的密码与随机数的hash值),加密算法为MD5和SCRAM-SHA-256两种,保存位置为系统表pg_authid。

        SCRAM-SHA-256加密及认证流程图:

        SCRAM-SHA-256加密

SCRAM-SHA-256$4096:kgMvWNAau3NfgfcUIY89CA==$KQXDM5+0dCYCYFIjP4VcIXvrD5sqneAPImEjnR42+IY=:yt950PbOeGkvBe75WN706nGAdDOhU/2jbzxf+iRjLFU=

        密文格式解析:

        SCRAM-SHA-256:加密算法名称

        4096:循环轮数,加密过程中算法执行次数

        kgMvWNAau3NfgfcUIY89CA==:随机数

        KQXDM5+0dCYCYFIjP4VcIXvrD5sqneAPImEjnR42+IY=:stored_key

        yt950PbOeGkvBe75WN706nGAdDOhU/2jbzxf+iRjLFU=:server_key

        加密过程解析:

        实现scram-sha-256加密的函数主要是pg_be_scram_build_secret,首先获取一个随机数,该随机数会随同密码密文一同保存(如上),然后进入加密函数scram_build_secret,这里最主要是下面四步:

	/* Calculate Sto
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值