【最佳实践】瀚高数据库安全版密码加密算法操作实践

瀚高数据库安全版密码是不允许明文存储的,默认是sm3算法。

该算法关联到两个文件:pg_hba.conf 和 postgresql.conf

(1)查看当前加密方法:

登录 psql,执行以下命令:

highgo=# show password_encryption;
 password_encryption 
---------------------
 md5
(1 row)

也可以查看文件 postgresql.conf:

more postgresql.conf | grep password_encryption 
password_encryption = md5         # md5, sm3 or scram-sha-256

(如果使用#注释掉,默认就是sm3,这点要注意)

该参数只是控制创建用户或修改更新密码的时候,以哪种方式存入数据库。与登录验证没关系,此时需要修改pg_hba.conf里的算法:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

(2)修改加密方法:

例如:我们要将 md5 修改为 sm3,我们按如下步骤操作。

第1步:设置加密方式为 sm3(临时只对当前会话有效)

highgo=# set password_encryption TO sm3; 

第2步:修改用户密码(接上个会话)

highgo=# alter user current_user password 'Hello@1234567'; 

第3步:修改 pg_hba.conf 密码验证算法
(如果不做这一步,登录将失败,因为输入密码依旧会按 md5 去哈希计算,跟数据库中sm3算法算出来的哈希值肯定不一样的)

# "local" is for Unix domain socket connections only
local   all             all                                     sm3
# IPv4 local connections:
host    all             all             127.0.0.1/32            sm3

需要执行以下命令使 pg_hba.conf 生效:

[root@S1 data]# pg_ctl reload 
server signaled

最后,我们登录验证一下新密码:

[root@S1 data]# psql highgo sysdba -W 
Password: 
NOTICE:  
-------------------------------------------
Login User: sysdba 
Login time: 2022-03-28 17:13:58.54784+08 
Login Address: [local] 
Last Login Status: FAILED 
Login Failures: 2 
Valied Until: infinity 
-------------------------------------------

psql (4.5.6)
Type "help" for help.

highgo=# 

如果以后所有密码都要按照 sm3 来加密,那就这样修改参数:

highgo=# alter system set password_encryption TO sm3; 

然后 reload 一下数据库:

[root@S1 data]# pg_ctl reload 
server signaled
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值