gpt4 book ai didi

java - GPG 从 Java 解密平面文件

转载 作者:行者123 更新时间:2023-12-01 09:20:14 24 4
gpt4 key购买 nike

我对 Java 还很陌生。我有一个平面文件,其中存储了使用 Unix 的 GPG 实用程序加密的密码。现在,我想在连接到系统之前读取该文件并将密码放入字符串中。我已阅读帖子Getting GPG Decryption To Work In Java (Bouncy Castle)但我无法使用该程序,因为它给我错误添加 @ 在 PGPSecretKey 之前并删除 token 等。基本上我不知道在哪里将java方法放入我的项目中。

下面是我的代码:

package jcpx.oracle.apps.gpg;

import org.bouncycastle.apache.*;
import org.bouncycastle.apache.bzip2.*;
import org.bouncycastle.bcpg.*;
import org.bouncycastle.bcpg.attr.*;
import org.bouncycastle.bcpg.sig.*;
import org.bouncycastle.openpgp.*;

private PGPSecretKey readSecretKey(InputStream in) throws IOException, PGPException {
in = PGPUtil.getDecoderStream(in);
PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(in,
new BcKeyFingerprintCalculator());

PGPSecretKey key = null;
for (Iterator<PGPSecretKeyRing> it = pgpSec.getKeyRings(); key == null && it.hasNext();) {
PGPSecretKeyRing kRing = it.next();

for (Iterator<PGPSecretKey> it2 = kRing.getSecretKeys(); key == null
&& it2.hasNext();) {
PGPSecretKey k = it2.next();
if ((keyId == null) && k.isSigningKey()) {
key = k;
}
if ((keyId != null)
&& (Long.valueOf(keyId, 16).longValue() == (k.getKeyID() & MASK))) {
key = k;
}
}
}

if (key == null) {
throw new IllegalArgumentException("Can't find encryption key"
+ (keyId != null ? " '" + keyId + "' " : " ") + "in key ring.");
}

return key;
}

最佳答案

如果没有足够的上下文(例如错误、输入文件),调试代码会很困难。

如果您的问题仍未解决,请在此处查看此答案:https://stackoverflow.com/a/42652115/7550201

关于java - GPG 从 Java 解密平面文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40212654/

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