Je tam dobrý GnuPG šifrování knihovna pro Java / Scala?

hlasů
33

Chtěl bych, aby bylo možné šifrovat soubory na disku a / nebo dat v paměti při použití GnuPG z Java aplikace. Pokud je to možné rád bych, abychom se vyhnuli, aby systém volá k nástrojům příkazového řádku gpg.

Existuje doporučená knihovna, nebo může doporučit nejlepší přístup k GPG šifrování od Java (nebo Scala)?

Jsem rozvíjet a mají v úmyslu spustit aplikaci v prostředí Linux, i když by se dát přednost řešení, cross-platform.

Položena 21/09/2009 v 16:16
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
21

Můžete zkusit volat JAVA API BouncyCastle.org .

Její dokumentace zmiňuje:

Balíček skákací hrad Crypto je implementace Java kryptografických algoritmů.

Máte zde příklad OpenPGP ByteArrayHandler .

Tam by mohla být nějaká nekompatibilita mezi šifrováním BouncyCastle a šifrování GnuGP ačkoli, protože BouncyCastle nepoužívá GnuPG, nýbrž realizuje OpenPGP (RFC2440) v Javě.

Odpovězeno 21/09/2009 v 16:31
zdroj uživatelem

hlasů
3

Nedávno jsem musel pracovat na GPG šifrování-dešifrování a našli knihovnu PGP BountyCastle to dělá trik. Tyto kroky byly

1) Přidat verzi ve vlastnostech pom.xml

        <org.bouncycastle.version>1.46</org.bouncycastle.version>

2) Přidat následující závislosti

        <!-- 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) Ve třídě implementačního přidal poskytovatele s Java zabezpečení

         Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

4) Zbytek kódu byla jen jednoduchá implementace Java

    File encryptedFile = new File(encryptedFileName);
    byte[]  encryptedByteArray = FileUtils.readFileToByteArray(inputFile);      
    byte[] decryptedByteArray = ByteArrayHandler.decrypt(encryptedByteArray, passPhrase.toCharArray());
    String decryptedString = new String(decryptedByteArray);

Doufám, že to pomůže.

Odpovězeno 06/06/2013 v 13:57
zdroj uživatelem

hlasů
2

Tam je https://github.com/smartrevolution/gnupg-for-java který je založen na gpgme, a pracuje na vrcholu GnuPG 1.4. Jsme jeho aktualizaci pro GnuPG 2.x a využívají ji v naší aplikaci pro Android. Můžete získat kód k těm zde:

Odpovězeno 12/07/2013 v 22:14
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more