如何防止密码重新生成?

时间:2019-09-04 11:44:12

标签: java spring hibernate encryption

我使用Hibernate注释对密码进行加密

@ColumnTransformer(write = "crypt(?, gen_salt(...))")
private String password;

但是更新实体后,我在日志中看到重新生成了密码。

 password=crypt('$2a$...

在保存对象时如何防止此字段再次加密?

2 个答案:

答案 0 :(得分:1)

这里有两个可能的解决方案,我想你应该去第二个:

要么由于某种原因需要清除密码,然后在读取的表上使用“ decrypt”语句,请参见example 73 in section 2.3.19

或者您只需要检查用户是否发送了正确的密码,并应该使用哈希功能而不是加密。参见difference between hash and encryption, and when to use each

答案 1 :(得分:0)

使用该配置

@Column(name = "password", nullable = false, updatable = false)