亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Apache Camel 進行 PGP 加密

使用 Apache Camel 進行 PGP 加密

忽然笑 2023-06-14 10:51:28
我正在嘗試使用 Apache Camel 的 PGP 加密/解密方法來加密和解密文件。此外,我還安裝了Kleopatra來生成私鑰和公鑰。使用 Kleopatra 我已經成功地生成了我的密鑰。密鑰和公鑰以“.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 <[email protected]>";                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.52bcprov-ext-jdk15on-1.57camel-context-2.22.1camel-core-2.22.1camel-crypto-2.19.1slf4j-api-1.7.25slf4j-nop-1.7.25
查看完整描述

1 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

您可以通過在您的程序中添加來在控制臺中啟用駱駝日志記錄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 文件夾中的文件然后失敗,但出現以下異常:


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)


查看完整回答
反對 回復 2023-06-14
  • 1 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號