Разрешение пользователям вводить ключи для шифрования Blowfish - PullRequest
0 голосов
/ 06 июня 2011

Я пишу базу данных sqlite, которая будет шифровать сообщения с использованием blowfish. Однако для его эффективного использования пользователь должен иметь возможность ввести ключ для базы данных при запуске программы. Проблема заключается в том, что я использую случайно сгенерированный ключ для безопасности, но это, кажется, делает невозможным ввод ключа пользователем. Есть ли у кого-нибудь идеи, как разрешить пользователю вводить клавишу, не заставляя его вводить, например, нулевой символ.

1 Ответ

0 голосов
/ 06 июня 2011

Вы можете сгенерировать пароль следующим образом:

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();
...