我的User
实体类包含一个密码哈希字段,它是一个具有固定长度的字节数组(32字节,因为它是SHA-256哈希)。
@Entity
public class User {
@Column(nullable=false)
private byte[] passwordHash;
...
}
如您所见,我没有使用任何特殊的注释,只是一个 NOT NULL。
这个方法是可行的,但它是否能够高效运行呢?我的架构是由Hibernate生成的,但我不知道它确切地生成了什么(我目前正在使用内存中的HSQL数据库)。
我担心,由于它不知道这是一个固定长度的数组(Column注释中的length字段仅适用于字符串),它将把此哈希存储在BLOB字段中,并作为指针添加到记录中(如果我正确理解数据库的工作原理)。
这是真的吗?我该如何更改它?我应该将哈希编码为字符串,使用base64或hex,接受那种小的性能/正确性影响吗?