c# - 需要使用 C# 进行 BouncyCaSTLe PGP 文件加密的示例

标签 c# .net bouncycastle pgp

我正在尝试使用我的私钥(ascii 格式)和任何其他公钥(也是 ascii 格式)来加密文件。 BouncyCaSTLe 库看起来是正确的使用方法,但我找不到 C# 的文档。谁能帮我举个例子。谢谢。

最佳答案

这是 BouncyCaSTLe 示例中的一些代码。您应该获取源代码并查看单元测试,它们包含示例。我发现 Java 资源也很有用。该示例可以在 crypto\test\src\openpgp\examples\PbeFileProcessor.cs 下的源代码中找到

private static void EncryptFile(
        Stream  outputStream,
        string  fileName,
        char[]  passPhrase,
        bool    armor,
        bool    withIntegrityCheck)
    {
        if (armor)
        {
            outputStream = new ArmoredOutputStream(outputStream);
        }

        MemoryStream bOut = new MemoryStream();

        PgpCompressedDataGenerator comData = new PgpCompressedDataGenerator(
            CompressionAlgorithmTag.Zip);

        PgpUtilities.WriteFileToLiteralData(
            comData.Open(bOut),
            PgpLiteralData.Binary,
            new FileInfo(fileName));

        comData.Close();

        byte[] bytes = bOut.ToArray();

        PgpEncryptedDataGenerator cPk = new PgpEncryptedDataGenerator(
            SymmetricKeyAlgorithmTag.Cast5, withIntegrityCheck, new SecureRandom());

        cPk.AddMethod(passPhrase);

        Stream cOut = cPk.Open(outputStream, bytes.Length);

        cOut.Write(bytes, 0, bytes.Length);

        cOut.Close();

        if (armor)
        {
            outputStream.Close();
        }
    }

关于c# - 需要使用 C# 进行 BouncyCaSTLe PGP 文件加密的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2693769/

相关文章:

java - 使用 Java Bouncy CaSTLe 列出服务器支持的密码套件

c# - .NET 中的视频 session

c# - EF 代码第一个多对多,主键由 3 个字段组成

c# - visual studio 2017 启动有/无调试性能差异

.net - 如何在 .Net Restful Web 服务中公开二进制文件?

java - 使用 Apache CXF 时,org.bouncycaSTLe.asn1.x509.SubjectPublicKeyInfo 出现 NoClassDefFoundError

c# - 如何使用 HTML Agility Pack 从网站检索所有图像?

c# - C#中构造函数的where子句?

java - Java 或 .Net 中的最佳持续时间类型

Java - 从 5 个 CRT 组件生成 RSA key 对