Расшифровать Blowfish в Java (Генерация секретного ключа в программе)

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

Мой вопрос: как вы создаете SecretKey в программе?


person user678461    schedule 26.03.2011    source источник
comment
Вы уверены, что пробовали все ключи?   -  person Greg Hewgill    schedule 27.03.2011
comment
см. stackoverflow.com/questions/5244950/ , просто сгенерируйте случайные данные byte[] в качестве входных данных (будучи студентом cs, вы должны понять это).   -  person Johannes Rudolph    schedule 27.03.2011
comment
Не каждый возможный ключ, но каждый ключ, который, как мы думаем, он будет использовать. Основано на том, что он сказал в классе, и на списках наиболее распространенных паролей.   -  person user678461    schedule 27.03.2011


Ответы (3)


Это может помочь вам:

byte[] key = getKey();
Cipher cipher = Cipher.getInstance("Blowfish");
SecretKeySpec keySpec = new SecretKeySpec(key, "Blowfish");
cipher.init(Cipher.DECRYPT_MODE, keySpec);
person WhiteFang34    schedule 26.03.2011

Вот API, который вы хотите использовать. http://download.oracle.com/javase/6/docs/api/javax/crypto/spec/SecretKeySpec.html#SecretKeySpec%28byte%5b%5d,%20java.lang.String%29

person Mike Samuel    schedule 26.03.2011

Используйте SecretKeySpec для создания < a href="http://download.oracle.com/javase/6/docs/api/javax/crypto/SecretKey.html" rel="nofollow">SecretKey с использованием SecretKeyFactory.generate().

person Bombe    schedule 26.03.2011