Java 允许用户为blowfish加密输入密钥
我正在编写一个sqlite数据库,它将使用blowfish加密消息。然而,为了有效地使用它,用户必须能够在程序启动时输入数据库的密钥。问题是,我使用随机生成的密钥进行安全保护,但这似乎使允许用户输入密钥变得不可能。是否有人知道如何让用户输入密钥,同时避免强迫用户输入空字符。您可以按如下方式生成密码:Java 允许用户为blowfish加密输入密钥,java,sqlite,blowfish,Java,Sqlite,Blowfish,我正在编写一个sqlite数据库,它将使用blowfish加密消息。然而,为了有效地使用它,用户必须能够在程序启动时输入数据库的密钥。问题是,我使用随机生成的密钥进行安全保护,但这似乎使允许用户输入密钥变得不可能。是否有人知道如何让用户输入密钥,同时避免强迫用户输入空字符。您可以按如下方式生成密码: SecureRandom r = new SecureRandom(); byte[] bytes = new byte[16]; r.nextBytes(bytes); String pwd =
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();
不要让他们输入原始密钥,而是从密码/短语+salt派生密钥,请参阅