gpt4 book ai didi

java - 使用 Apache Camel 进行 PGP 加密

转载 作者:行者123 更新时间:2023-12-02 09:35:21 28 4
gpt4 key购买 nike

我正在尝试使用 Apache Camel 的 PGP 加密/解密方法来加密和解密文件。

此外,我还安装了Kleopatra来生成私钥和公钥。使用 Kleopatra 我已经成功生成了我的 key 。 key 和公钥的扩展名为“.asc”。

下面是我用来加密文件的代码

import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;

public class PGPENC {
public static void main(String[] args) throws Exception {
CamelContext camelContext = new DefaultCamelContext();

camelContext.addRoutes(new RouteBuilder() {
public void configure() throws Exception {

String publicKeyFileName = "file:C:\\Users\\karthick\\Desktop\\PGP\\PGP\\Public_Key.asc";
String keyUserid = "Karthick Sambanghi <karthick88it@gmail.com>";

from("file:C:\\Users\\ITSS\\karthick\\PGP\\PGP\\IN?noop=true;delete=true").marshal()
.pgp(publicKeyFileName, keyUserid).to("file:C:\\Users\\ITSS\\Desktop\\PGP\\PGP\\OUT");

}
});

camelContext.start();

Thread.sleep(5000);
camelContext.stop();
}
}

此处程序成功执行,没有任何错误,但 OUT 文件夹中的文件未加密。是否有办法检查“camelContext”返回语句是成功还是失败?

以下是当前用于执行程序的库

bcpg-jdk15on-1.52
bcprov-ext-jdk15on-1.57
camel-context-2.22.1
camel-core-2.22.1
camel-crypto-2.19.1
slf4j-api-1.7.25
slf4j-nop-1.7.25

最佳答案

您可以通过在程序中添加 org.apache.log4j.BasicConfigurator.configure() 来在控制台中启用驼峰日志记录。

使用它,您可以验证路由是否启动并消耗了文件。所以通过添加一些日志来执行你的程序:

 CamelContext camelContext = new DefaultCamelContext();
BasicConfigurator.configure();
camelContext.addRoutes(new RouteBuilder() {

public void configure() throws Exception {

String publicKeyFileName = "file:C:\\LocalData\\Keys\\pgp_public.asc";
String keyUserid = " ";

from("file:C:\\Test\\Test\\IN")
.log("file received")
.marshal().pgp(publicKeyFileName, keyUserid)
.to("file:C\\Test\\Test\\OUT");

}
});
camelContext.start();
Thread.sleep(30000);
camelContext.stop();
}

我可以注意到路由正在启动,消耗 in 文件夹中的文件,然后失败,但有异常(exception):

Caused by: java.lang.NoSuchMethodError: org.bouncycastle.openpgp.PGPPublicKeyRingCollection.<init>(Ljava/io/InputStream;)V
at org.apache.camel.converter.crypto.PGPDataFormatUtil.findPublicKey(PGPDataFormatUtil.java:64)
at org.apache.camel.converter.crypto.PGPDataFormatUtil.findPublicKey(PGPDataFormatUtil.java:54)
at org.apache.camel.converter.crypto.PGPDataFormat.marshal(PGPDataFormat.java:64)
at org.apache.camel.processor.MarshalProcessor.process(MarshalProcessor.java:59)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)

这是 Camel 文档中的一个错误,请在此处查找详细信息: https://jira.apache.org/jira/browse/CAMEL-12574

关于java - 使用 Apache Camel 进行 PGP 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57574224/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com