Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 允许用户为blowfish加密输入密钥_Java_Sqlite_Blowfish - Fatal编程技术网

Java 允许用户为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 =

我正在编写一个sqlite数据库,它将使用blowfish加密消息。然而,为了有效地使用它,用户必须能够在程序启动时输入数据库的密钥。问题是,我使用随机生成的密钥进行安全保护,但这似乎使允许用户输入密钥变得不可能。是否有人知道如何让用户输入密钥,同时避免强迫用户输入空字符。

您可以按如下方式生成密码:

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派生密钥,请参阅