我期待如何以加密形式将我的密码存储在数据库中。 我找到了这本手册,但仍不确定如何将它放入我的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)
);
答案 0 :(得分:1)
首先,lzf
不是cipher
的有效参数; H2仅支持aes
和xtea
(documentation)
也就是说,不要让数据库为您加密密码。数据库通常不与Java应用程序在同一服务器上运行,这意味着密码将通过网络以纯文本形式传输。
即使您的数据库位于同一服务器上,甚至是嵌入式数据库,密码也需要特殊处理才能将它们存储为二进制blob并使用jBCrypt之类的框架。造成这种情况的主要原因是攻击者开发了自动破解密码的复杂自动化工具。编写一种能够承受最常见攻击的算法并不简单。