当前位置: 首页 > 知识库问答 >
问题:

bouncy castle中pgp命令的等效项

漆雕彬彬
2023-03-14
gpg -e -r "recipient" --output output.gpg input.zip

共有1个答案

邹弘
2023-03-14

创建证书和私钥

public static byte[] encryptData(byte[] data, X509Certificate encryptionCertificate) throws CertificateEncodingException, CMSException, IOException {

byte[] encryptedData = null;
if (null != data && null != encryptionCertificate) {
    CMSEnvelopedDataGenerator cmsEnvelopedDataGenerator
      = new CMSEnvelopedDataGenerator();

    JceKeyTransRecipientInfoGenerator jceKey 
      = new JceKeyTransRecipientInfoGenerator(encryptionCertificate);
    cmsEnvelopedDataGenerator.addRecipientInfoGenerator(transKeyGen);
    CMSTypedData msg = new CMSProcessableByteArray(data);
    OutputEncryptor encryptor
      = new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES128_CBC)
      .setProvider("BC").build();
    CMSEnvelopedData cmsEnvelopedData = cmsEnvelopedDataGenerator
      .generate(msg,encryptor);
    encryptedData = cmsEnvelopedData.getEncoded();
}
return encryptedData;}

使用收件人的证书创建JceKeyTransRecipientInfoGenerator对象。

然后创建一个新的CMSEnvelopedDataGenerator对象,并将收件人信息生成器添加到其中。

 类似资料:
  • 我一直在尝试使用BouncyCastle库来进行PGP加密/解密。我有一些代码需要修改,以便只使用流-不使用文件。 我尝试移除pgputilities.writeFileToliteralData(),然后让它返回一个流,但没有成功(输出流为空)。 这里更明确的是方法应该是什么: 下面是我需要修改的代码:

  • 问题内容: 我对此不太熟悉Java或openssl中的文件加密。我知道学校的基础知识,但从未真正实施过。 现在,我得到了以下三个命令: 我需要在Java中完全复制此代码。有一个简单的方法吗?我有可以使用的图书馆吗? 对于第一行,我使用来自Java 7的SecureRandom函数生成一个字节数组,然后使用apache commons编解码器库将其加为base64。像这样: 如果我没有记错,这应该做

  • 我有一个懒惰的集合,我想在我的服务/控制器中随意初始化它。此时此刻,我可以做到: 此命令依赖于Hibernate,不会使JPA的实现透明。有JPA优雅的方法来做到这一点吗?

  • 我试图使用java BouncyCastle库解密和验证PGP消息,但遇到了一些问题,抱怨PartialInputStream过早结束。 我知道encrypt工作得很好,因为我可以在命令行上使用gpg解密和验证使用encrypt函数创建的消息。

  • 代码在这里,使用BouncyCastle实现: 我希望能够读取此签名并使用公钥验证它。如何将其转换回BouncyCastle对象?

  • 问题内容: 我正在尝试创建一个与此wget命令具有相同功能的Python函数: -如果下载中断,请从上次中断的地方继续。 -如果5秒钟内没有新数据输入,请放弃并重试。鉴于此,它将从上次中断的地方再次尝试。 -永远重试。 串联使用的这三个参数导致下载不会失败。 我想在我的Python脚本中复制这些功能,但是我不知道从哪里开始… 问题答案: urllib.request应该可以工作。只需在一段时间(未