Я пишу базу данных sqlite, которая будет шифровать сообщения с помощью blowfish. Однако для эффективного использования пользователь должен иметь возможность ввести ключ для базы данных при запуске программы. Проблема заключается в том, что я использую случайно сгенерированный ключ для обеспечения безопасности, но это, похоже, делает невозможным ввод ключа пользователем. Есть ли у кого-нибудь идеи, как позволить пользователю вводить ключ, не заставляя их вводить, например, нулевой символ.
Разрешение пользователям вводить ключи для шифрования Blowfish
comment
Не заставляйте их вводить необработанный ключ, вместо этого получайте ключ из пароля/фразы+соли, см. stackoverflow.com/questions/372268/java-passphrase-encryption
- person Alex K.   schedule 06.06.2011
Ответы (1)
Вы можете сгенерировать пароль следующим образом:
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();
person
Thomas Mueller
schedule
06.06.2011