2016-04-14 25 views
0

Ich muss Datei entschlüsseln, die mit PGP verschlüsselt ist. Ich muss einen täglichen Scheduler schreiben und Java-Bibliothek-Unterstützung für die gleiche benötigen. Ich habe im Internet gesucht, aber alle Beispiele für Bouncycastle sind sehr alt und funktionieren jetzt nicht. Kann mir jemand bitte eine alternative Bibliothek empfehlen oder mich auf die neuesten Codebeispiele hinweisen, um Castle APIs zu integrieren?PGP Java-Bibliothek für die Entschlüsselung/Entschlüsselung

+0

Fragen Sie nie nach einer Bibliothek hier - die anderen Benutzer werden nur Ihre Frage schließen. Fragen Sie einfach "Wie kann ich ..." – Robert

+0

Welche Art von Fehlern haben Sie bei den nicht funktionierenden Hüpfburg-Beispielen? Sie haben einen Code zum Präsentieren? –

+0

Hüpfburg war schon lange eingeladen, es bedeutet nicht, dass es alt ist. Es wird ständig aktualisiert. Ich habe überhaupt kein Problem mit der Bibliothek. – stevelo

Antwort

0

Wenn Sie irgendeine Bibliothek nicht verwenden möchten, können Sie den folgenden Ansatz gehen:

Mit Runtime-Klasse in Java:

static Runtime runtime; 
static { 
    runtime = Runtime.getRuntime(); 
} 

public int decrypt(String passphrase, String encFileName, String newFileName) { 
    int result = 1; 
    StringBuffer output = new StringBuffer(); 
    try { 
     String st = "pgp --decrypt --overwrite remove --passphrase " + passphrase 
       + " --output " + newFileName + " " + encFileName; 
     Process process = runtime.exec(st); 
     logger.debug(st); 
     result = process.waitFor(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       process.getInputStream())); 

     String line = ""; 
     while ((line = reader.readLine()) != null) { 
      output.append(line + "\n"); 
     } 
     logger.info(output); 
    } catch (IOException e) { 

     logger.error("IOError during decrypt" + e); 
     e.printStackTrace(); 
    } catch (InterruptedException e) { 
     logger.error("InterruptedException during decrypt" + e); 
     e.printStackTrace(); 
    } 
    return result; 
} 

den obigen Code in jeder Klasse setzen und es anpassen entsprechend Ihrer Anforderung. Ignorieren Sie die Protokollierung und den zugehörigen Code. Dateiname sollte Ihr vollständiger Pfad sein. zB: /xyz/abc.pgp

Verwandte Themen