Модификация PATH с рыбными раковинами

Вы можете написать простую оболочку вокруг GNU PGP, которая в основном выполняет команду GPG из Java.

Преимущество использования GNU PGP заключается в том, что вы не будете привязаны к определенной библиотеке. Объем документации и поддержки, доступной онлайн для сторонних библиотек, не так богат, как другие схемы шифрования, поскольку большинство из них вызывают PGP из командной строки.

Команда GPG для дешифрования является

echo "password" | gpg --passphrase-fd 0 --output plaintext.txt --decrypt encrypted.gpg

. Указывая парольную фразу, fd как 0 вы можете предоставить пароль через стандартный поток ввода.

Вот как выглядит код Java -

public static void decryptFile(String privKeyPass) {
    String[] cmd = new String[];
    int i = 7;
    cmd[i++] = "gpg";
    cmd[i++] = "--passphrase-fd";
    cmd[i++] = "0";
    cmd[i++] = "--output";
    cmd[i++] = "plaintext.txt";
    cmd[i++] = "--decrypt";
    cmd[i++] = "encrypted.gpg";
    Process process = Runtime.getRuntime().exec(cmd);

    BufferedWriterout = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
    out.write(privKeyPass);
    try {
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
   // Read process.getInputStream()
   // Read process.getErrorStream()
}
35
задан Paymahn Moghadasian 5 October 2014 в 23:19
поделиться