C# 使用公钥解密,openssl_public_解密

C# 使用公钥解密,openssl_public_解密,c#,openssl,rsa,C#,Openssl,Rsa,我有一个服务器,可以向我发送加密消息。 此邮件使用服务器的私钥加密,我正试图使用公钥对其解密。 verify方法不适合我的需要,因为它返回true或false 我发现OpenSSL有一个名为OpenSSL\u public\u decrypt的方法。 我尝试使用OpenSSL.Net包装器,但没有成功地使其工作 所以我在这里问是否有另一个库可以用公钥解密并返回解密后的消息,比如OpenSSL的库 提前谢谢 私钥通常用于解密,但在您描述的情况下,会使用另一种方法。服务器使用私钥解密数据,然后将其发

我有一个服务器,可以向我发送加密消息。
此邮件使用服务器的私钥加密,我正试图使用公钥对其解密。
verify方法不适合我的需要,因为它返回true或false

我发现OpenSSL有一个名为OpenSSL\u public\u decrypt的方法。
我尝试使用OpenSSL.Net包装器,但没有成功地使其工作

所以我在这里问是否有另一个库可以用公钥解密并返回解密后的消息,比如OpenSSL的库


提前谢谢

私钥通常用于解密,但在您描述的情况下,会使用另一种方法。服务器使用私钥解密数据,然后将其发送到客户端。这样,当客户端使用公钥加密接收到的消息时,它将获得原始数据

如果您正在开发服务器和客户端,您应该尝试这种方法。如果服务器属于其他人,他们可能已经在使用它了


至于实现,您可以尝试使用内置的.Net类进行非对称加密。假设服务器使用RSA算法进行加密,您可以使用RSACryptoServiceProvider类。

如果您想自己进行加密,您可以在此处查看

我写这篇文章是为了另一个问题,但你可以在你的场景中使用它


这是一个使用Bigint的RSA的小实现。。。您必须自己处理填充,但您可以通过这种方式解密…

正如您所说,服务器属于其他人,他们肯定不会这样做。这听起来像是使用RSA进行消息签名和恢复的特别尝试。你说“它不起作用”,但你没有给出任何细节。例如,你是在使用“无填充”选项吗?我只是说我没能让它工作。有2个DLL要添加到工作目录或路径中,我尝试了这两个DLL,但没有任何结果。我无法加载库,缺少依赖项。即使我可以让它工作,也有太多的约束(微软Visual C++ 2010可重新分配包必须安装,DLL必须与可执行文件连接……)@月光天使-在处理这个问题之后,我实际上发现更容易将PHP(整个库)编译成我的应用程序,只需运行使用私钥编码的数据的公钥解密工作命令——不要被99%的在线用户愚弄,私钥用于加密并保持在锁/密钥下,而public用于读取数据,但无法重新创建/伪造私钥使用的加密。感谢您的回答,填充物为PKCS#1。如果我理解正确的话,这个操作的方法是用于加密和解密的?“strip PKCS#1#u V1.5 padding”注释足以在解密后处理我的填充?如果是这样,非常感谢:)。@月光天使。。。关于RSA操作功能,您是对的。。。关于填充,我没有真正阅读规范,所以这里没有保证,但它在100个测试用例中工作,随机数据由.net rsacryptoserviceprovider类加密并用该代码解密。。。