0
我在写一个sqlite数据库,它将使用河豚加密邮件。但是为了有效地使用它,用户必须能够在程序启动时输入数据库的密钥。问题在于我使用随机生成的密钥来实现安全性,但这似乎使得用户无法输入密钥。有没有人有任何想法如何让用户输入密钥,同时避免强迫他们输入,例如,空字符。允许用户输入河豚加密密钥
我在写一个sqlite数据库,它将使用河豚加密邮件。但是为了有效地使用它,用户必须能够在程序启动时输入数据库的密钥。问题在于我使用随机生成的密钥来实现安全性,但这似乎使得用户无法输入密钥。有没有人有任何想法如何让用户输入密钥,同时避免强迫他们输入,例如,空字符。允许用户输入河豚加密密钥
如下您可以生成密码:
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();
不要让他们进入一个原始密钥,而是派生密码/短语+盐键,请参阅http://stackoverflow.com/questions/372268/java-passphrase-encryption – 2011-06-06 11:50:08