Установщик Java для зашифрованного пароля

Я хотел бы создать установщик для приложения Java и нашел несколько отличных приложений, которые это делают. Проблема в том, что я использую Jasypt для шифрования пароля, используемого в файле свойств. В настоящее время пользователь должен использовать командную строку Jasypt для шифрования своего пароля, а затем ввести зашифрованный пароль в файле свойств. Затем они должны включить ключ шифрования в Java, что означает редактирование и повторную компиляцию. Очевидно, есть более простой способ сделать это. В конечном итоге я хотел бы иметь установщик, который запрашивает пароль, шифрует его, сохраняет ключ, а затем устанавливает приложение. Я не Java-программист :( скорее хакер. :) Спасибо!


person user1431891    schedule 19.10.2012    source источник


Ответы (1)


Используйте классы Cipher для шифрования/дешифрования пароля.

Перед сохранением файла используйте ENCRYPT_MODE для шифрования:

String passwordToEncrypt = ....//user entered
byte[] passwordToEncryptBytes = passwordToEncrypt.getBytes();

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
SecretKey mySecretKey = keyGen.generateKey();

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, mySecretKey);
IvParameterSpec ivParameter = 
                    cipher.getParameters().getParameterSpec(IvParameterSpec.class);
byte[] encryptedPasswordData = cipher.doFinal(passwordToEncryptBytes);

Используйте encryptedPasswordData для шифрования файла.

При открытии файла запросите пароль, снова зашифруйте и попробуйте открыть файл. Если правильный пароль, он должен пройти.

person Yogendra Singh    schedule 19.10.2012