繁体   English   中英

如何通过GnuPG在Java中解密AES256加密文件?

[英]How to decrypt in Java a AES256 encrypted file by GnuPG?

我已经使用以下命令在Linux上加密了文本文件:

 gpg --cipher-algo AES256 -c file.txt 

该命令要求输入密码,假设我们在此处输入“ 123”。

该文件可以被解密:

gpg -d file.txt.gpg

现在,我想用Java解密此文件,但无法完全知道如何使用密码短语“ 123”来执行此操作。 具体来说,尚不清楚盐和初始载体是什么,还需要什么。

GnuPG实现了OpenPGP协议,Java的本机类不直接支持该协议。 OpenPGP有其自己的文件格式 ,但是使用的CFB模式略有不同

与其自行实现所有功能,不如去Bouncy Castle库 它还提供了一个示例,说明如何解密对称加密的消息 ,该消息归结为对OutputStream out进行解密的相关调用(链接的示例中还提供了更多代码来确定所使用的算法参数和压缩):

PGPEncryptedDataGenerator encGen = new PGPEncryptedDataGenerator(
        new JcePGPDataEncryptorBuilder(algorithm).setSecureRandom(
          new SecureRandom()).setProvider("BC"));
encGen.addMethod(
        new JcePBEKeyEncryptionMethodGenerator(passPhrase).setProvider("BC"));
OutputStream encOut = encGen.open(out, compressedData.length);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM