【问题标题】:PGP java library for excryption/decryption用于加密/解密的 PGP java 库
【发布时间】:2016-04-14 20:07:16
【问题描述】:

我需要解密使用 PGP 加密的文件。 我需要编写一个每日调度程序,并且需要 Java 库支持。我在互联网上搜索,但所有与 bouncycastle 相关的示例都非常陈旧,现在无法使用。有人可以指导我使用替代库或将我指向最新的代码示例以集成城堡 API。

【问题讨论】:

  • 永远不要在这里请求图书馆 - 其他用户只会关闭您的问题。只要问“我怎么能……”
  • 不工作的充气城堡示例有哪些错误?你有什么代码要介绍吗?
  • 充气城堡很久以前就被邀请了,不代表老了,一直在更新。我对图书馆一点问题都没有。

标签: java encryption cryptography bouncycastle


【解决方案1】:

如果您不想使用任何库,可以采用以下方法:

在 java 中使用 Runtime 类:

static Runtime runtime;
static {
    runtime = Runtime.getRuntime();
}

public int decrypt(String passphrase, String encFileName, String newFileName) {
    int result = 1;
    StringBuffer output = new StringBuffer();
    try {
        String st = "pgp --decrypt --overwrite remove --passphrase " + passphrase
                + " --output " + newFileName + " " + encFileName;
        Process process = runtime.exec(st);
        logger.debug(st);
        result = process.waitFor();
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                process.getInputStream()));

        String line = "";
        while ((line = reader.readLine()) != null) {
            output.append(line + "\n");
        }
        logger.info(output);
    } catch (IOException e) {

        logger.error("IOError during decrypt" + e);
        e.printStackTrace();
    } catch (InterruptedException e) {
        logger.error("InterruptedException during decrypt" + e);
        e.printStackTrace();
    }
    return result;
}

将上面的代码放在任意类中,根据你的要求自定义。忽略日志记录及其相关代码。 文件名应该是您的完整路径。例如:/xyz/abc.pgp

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 2012-04-29
    • 2019-02-12
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多