Sql 如何在H2数据库中创建安全字段?

Sql 如何在H2数据库中创建安全字段?,sql,jdbc,h2,Sql,Jdbc,H2,我期待着如何将我的密码以加密的形式存储在数据库中。 我找到了这本手册,但仍然不知道如何将其放入我的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) ); 首先,lzf不是ci

我期待着如何将我的密码以加密的形式存储在数据库中。 我找到了这本手册,但仍然不知道如何将其放入我的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)
);

首先,
lzf
不是
cipher
的有效参数;H2仅支持
aes
xtea
()

也就是说,不要让数据库为您加密密码。数据库通常与Java应用程序不在同一台服务器上运行,这意味着密码将通过网络以纯文本形式传输


即使您的数据库在同一台服务器上,甚至是嵌入的,密码也需要如此多的特殊处理,因此您最好将它们存储为二进制blob,并使用类似的框架。主要原因是攻击者开发了复杂的自动工具,可以自动破解密码。编写一个能够抵御大多数常见攻击的算法已经不再简单。

首先,
lzf
不是
密码的有效参数;H2仅支持
aes
xtea
()

也就是说,不要让数据库为您加密密码。数据库通常与Java应用程序不在同一台服务器上运行,这意味着密码将通过网络以纯文本形式传输

即使您的数据库在同一台服务器上,甚至是嵌入的,密码也需要如此多的特殊处理,因此您最好将它们存储为二进制blob,并使用类似的框架。主要原因是攻击者开发了复杂的自动工具,可以自动破解密码。编写一个能够抵御大多数常见攻击的算法不再是件容易的事