如何在 H2 数据库中创建安全字段?
Posted
技术标签:
【中文标题】如何在 H2 数据库中创建安全字段?【英文标题】:How to create a secured field in H2 database? 【发布时间】:2013-02-08 10:15:16 【问题描述】:我期待如何以加密形式将我的密码存储在数据库中。 我找到了这本手册,但仍然不确定如何将它放入我的 ddl。 下面的代码不起作用。
create table USER_USER (
USER_USER_ID long NOT NULL AUTO INCREMENT,
USER_USER_LOGIN varchar(50),
USER_USER_PASSWORD varchar (50) cipher lzf,
USER_USER_EMAIL varchar(50)
);
【问题讨论】:
【参考方案1】:首先,lzf
不是cipher
的有效参数; H2只支持aes
和xtea
(documentation)
也就是说,不要让数据库为您加密密码。该数据库通常不会与您的 Java 应用程序在同一台服务器上运行,这意味着密码将以纯文本形式通过网络传输。
即使您的数据库位于同一台服务器上,甚至是嵌入的,密码也需要非常多的特殊处理,因此您最好将它们存储为二进制 blob 并使用像 jBCrypt 这样的框架。主要原因是攻击者开发了复杂的自动化工具来自动破解密码。编写一个能够抵御大多数常见攻击的算法并不容易。
【讨论】:
以上是关于如何在 H2 数据库中创建安全字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 IntelliJ 和 H2 中创建 Hibernate 映射
如何在spring boot中创建H2+flyway测试数据库?