gpt4 book ai didi

Scala解密OpenPGP(GPG)加密文件

转载 作者:行者123 更新时间:2023-12-05 07:55:55 26 4
gpt4 key购买 nike

如何在 Scala 中解密 OpenPGP 加密文件?我有公钥和私钥,并且

gpg --output file.txt --decrypt file.txt.gpg

有效。

最佳答案

从 PR 到 https://github.com/sbt/sbt-pgp 有加密/解密文件测试用例代码存储库。它提供了一个使用 PGP 文件加密/解密的示例:

 package com.jsuereth.pgp

import org.specs2.mutable._
import sbt.io.IO

import java.io.{BufferedWriter, File, FileWriter}

class KeyGenSpec extends Specification {
PGP.init()

...

val user = "Test User <test@user.com>"
val pw: Array[Char] = "test-pw".toCharArray
val (pub, sec) = PGP.makeNewKeyRings(user, pw)

"encrypt and decrypt file" in {
IO withTemporaryDirectory { dir =>
val fileContent = "Just one string"
val testFile1 = new File(dir, "test1.txt")
val testFile2 = new File(dir, "test2.txt")

// original file
val bw1 = new BufferedWriter(new FileWriter(testFile1))
bw1.write(fileContent)
bw1.close()

val source1 = scala.io.Source.fromFile(testFile1.getAbsolutePath)
val lines1 = try source1.mkString finally source1.close()
//System.out.println(lines1)

// encrypted -> decrypted file preparation
val bw2 = new BufferedWriter(new FileWriter(testFile2))
bw2.write(fileContent)
bw2.close()

val testFileEncrypted = new File(dir, "testEncrypted.txt")
sec.publicKey.encryptFile(testFile2, testFileEncrypted)
testFile2.delete()
sec.secretKey.decryptFile(testFileEncrypted, pw)

val source2 = scala.io.Source.fromFile(testFile2.getAbsolutePath)
val lines2 = try source2.mkString finally source2.close()
//System.out.println(lines2)

lines1 must equalTo(lines2)
}
}
...
}

来源: https://github.com/CTiPKA/sbt-pgp/blob/develop/gpg-library/src/test/scala/com/jsuereth/pgp/KeyGenSpec.scala#L34

关于Scala解密OpenPGP(GPG)加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29164765/

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