2011-06-06 53 views
0

我在寫一個sqlite數據庫,它將使用河豚加密郵件。但是爲了有效地使用它,用戶必須能夠在程序啓動時輸入數據庫的密鑰。問題在於我使用隨機生成的密鑰來實現安全性,但這似乎使得用戶無法輸入密鑰。有沒有人有任何想法如何讓用戶輸入密鑰,同時避免強迫他們輸入,例如,空字符。允許用戶輸入河豚加密密鑰

+0

不要讓他們進入一個原始密鑰,而是派生密碼/短語+鹽鍵,請參閱http://stackoverflow.com/questions/372268/java-passphrase-encryption – 2011-06-06 11:50:08

回答

0

如下您可以生成密碼:

SecureRandom r = new SecureRandom(); 
byte[] bytes = new byte[16]; 
r.nextBytes(bytes); 
String pwd = new BigInteger(bytes).toString(Character.MAX_RADIX); 
System.out.println(pwd); 

要轉換密碼回字節數組,使用:

bytes = new BigInteger(pwd, Character.MAX_RADIX).toByteArray();