刚开始使用PGP,我正在尝试通过C#控制台应用程序加密一个文件。在我的研究中,似乎BouncyCastle是一个更受欢迎的应用。我找到了下面的文章,它看起来很好,除了我只有公钥。http://burnignorance.com/c-coding-tips/pgp-encryption-decryption-in-c/
我找到了一个GitHub文件,它应该能让你非常接近你想要的东西。它为您提供了Encrypt(使用公钥)和Decrypt(使用私钥)方法。它使用Bouncy Castle API,使用AES算法。
https://gist.github.com/dziwoki/cc41b523c2bd43ee646b957f0aa91943
我需要在C#中加密数据,以便将其传递给Java。Java代码属于第三方,但我得到了相关的源代码,因此我决定,由于Java使用Bouncy Castle库,所以我将使用C#端口。 解密工作正常。但是,解密仅在使用私钥使用encrypt时有效,而不是使用公钥。使用公钥时,解密失败,出现。 编辑: 我还添加了一个单元测试,它证明公钥等于从私钥中提取的公钥:
我希望使用ChaCha加密几个文件,所以我想知道使用是否合适。这个类似乎是为TLS设计的,那么这是否意味着它不是为文件加密设计的呢?内部的方法,例如和似乎可以处理文本而不是二进制文件。 如果是这样的话,有没有人知道如何使用BC的ChaCha实现来进行文件加密?
这是我在Stackoverflow上的第一个帖子,所以我将感谢任何关于如何改进的建议。 我在这里尝试了以下内容,因此我试图在BouncyCastle的帮助下,通过Microsoft RSACryptoServiceProvider对字符串消息进行编码,让它成为“测试”。 我得到了一个给定的公钥,其中服务器提供者已经向我描述了公钥的结构。 公钥:48015250010000010100970348B
我一直在尝试使用BouncyCastle库来进行PGP加密/解密。我有一些代码需要修改,以便只使用流-不使用文件。 我尝试移除pgputilities.writeFileToliteralData(),然后让它返回一个流,但没有成功(输出流为空)。 这里更明确的是方法应该是什么: 下面是我需要修改的代码:
我使用RSA_public_encrypt函数发送加密数据到套接字。我正在读取公钥。使用"pkey=PEM_read_PUBKEY(f, NULL, NULL, NULL);"函数的PEM文件。从上面的函数中检索的pkey是类型EVP_PKEY*,我不能在函数RSA_public_encrypt中使用。(RSA_public_encrypt使用RSA*类型密钥) 如何将EVP_PKEY*PKEY转