Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我期待如何以加密形式将我的密码存储在数据库中。我找到了这本手册,但仍然不确定如何将它放入我的 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(文档)
lzf
cipher
aes
xtea
也就是说,不要让数据库为您加密密码。该数据库通常不会与您的 Java 应用程序在同一台服务器上运行,这意味着密码将以纯文本形式通过网络传输。
即使您的数据库在同一台服务器上甚至是嵌入的,密码也需要非常特殊的处理,因此您最好将它们存储为二进制 blob 并使用jBCrypt 之类的框架。造成这种情况的主要原因是攻击者开发了复杂的自动化工具来自动破解密码。编写一个能够抵御大多数常见攻击的算法并不简单。