2013-02-08 46 views
1

我期待着如何以加密形式將我的密碼存儲在數據庫中。 我發現這本手冊,但仍不知道如何把它放入我的DDL。下面的代碼不起作用。如何在H2數據庫中創建安全字段?

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) 
); 

回答

2

首先,lzf不是cipher有效參數; H2僅支持aesxteadocumentation

也就是說,不要讓數據庫爲您加密密碼。數據庫通常不會與Java應用程序在同一臺服務器上運行,這意味着密碼將通過網絡以純文本形式傳輸。

即使您的數據庫位於同一臺服務器上,或者甚至是嵌入式的,密碼也需要非常特殊的處理,您最好將它們存儲爲二進制blob,並使用像jBCrypt這樣的框架。其主要原因是攻擊者已經開發出了自動破解密碼的複雜自動化工具。編寫能夠抵禦最常見攻擊的算法並不簡單。