我期待着如何将我的密码存储在数据库中的加密形式。我找到了这本手册,但仍然不确定如何将它放入我的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)
);发布于 2013-02-08 19:16:02
首先,lzf不是cipher的有效参数;H2只支持aes和xtea (documentation)
也就是说,不要让数据库为您加密密码。数据库通常与Java应用程序不在同一台服务器上运行,这意味着密码将以纯文本形式在网络上传输。
即使您的数据库位于同一台服务器上,甚至是嵌入式数据库,密码也需要如此多的特殊处理,因此您最好将其存储为二进制blob,并使用像jBCrypt这样的框架。主要原因是攻击者已经开发出复杂的自动化工具,可以自动破解密码。要编写一种能够抵抗大多数常见攻击的算法并不简单。
https://stackoverflow.com/questions/14770242
复制相似问题