Niedawno musiałem pracować nad odszyfrowaniem szyfrowania GPG i znalazłem bibliotekę PGP BountyCastle. Kroki były
1) Dodać wersji we właściwościach pom.xml
<org.bouncycastle.version>1.46</org.bouncycastle.version>
2) Dodaje się następujące zależności
<!-- Dependency for PGP and GPG Encryption-Decryption -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15</artifactId>
<version>${org.bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpg-jdk15</artifactId>
<version>${org.bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15</artifactId>
<version>${org.bouncycastle.version}</version>
</dependency>
3) w klasie realizacji dodany dostawcy Java Bezpieczeństwa
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
4) Reszta kodu była po prostu prostą implementacją Javy
File encryptedFile = new File(encryptedFileName);
byte[] encryptedByteArray = FileUtils.readFileToByteArray(inputFile);
byte[] decryptedByteArray = ByteArrayHandler.decrypt(encryptedByteArray, passPhrase.toCharArray());
String decryptedString = new String(decryptedByteArray);
Mam nadzieję, że to pomoże.
Dzięki za odpowiedź - wygląda obiecująco. Zrobię to i zgłoś, czy mogę sprawić, by działał z GnuPG. Wygląda na to, że może to być po prostu ostrożny wybór wzajemnie zgodnych opcji. –
Mam to teraz. Polecam, patrząc na przykładowy kod w org.bouncycastle.openpgp.examples.KeyBasedFileProcessor w szczególności. Podstępne bity obejmowały znajdowanie pożądanego klucza publicznego w kolekcji kluczy i opracowanie, że implementacja JCE dostarczona w standardowym JDK jest ułomna, i musisz jawnie pobrać i zainstalować pliki zasad Javy (JCC) Unlimited Strength Jurisdiction Policy 6 "ze strony internetowej Sun. –
@ James Shade: dziękuję za informację zwrotną. Bardzo pouczający. – VonC