我正在编写一个sqlite数据库,它将使用blowfish加密消息。但是,为了有效地使用它,用户必须能够在程序启动时输入数据库的密钥。问题在于我使用随机生成的密钥来保证安全性,但这似乎使得用户无法输入密钥。有没有人有任何想法如何让用户输入密钥,同时避免强迫他们输入,例如,空字符。
答案 0 :(得分: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();