我找到了几种解决方案,在这些方案中,我可以使用RSA提供程序用公钥加密消息,并用私有密钥解密消息。
但我想要的是用私钥加密,用公钥解密。
我想将公钥存储在我的应用程序中,并用私钥在我的dev机器上加密一个许可证,将其发送到应用程序,并让信息用公钥解密。
这里主要有两种可能性:
在RSA签名中,对输入消息进行摘要,并将摘要与填充方案相结合,然后将私钥应用于填充数据。
在RSA验证中,对候选消息进行摘要,使用公钥撤消私钥应用,然后使用摘要验证填充的消息。(在PKCS#1签名中,“看看是否是正确的答案”,对于PSS来说,它更复杂)。
RSA PKCS#1标准和/或RFC没有说明这意味着什么。在RSA中,“加密”是指对数据(PKCS#1或OAEP)应用选定的填充方案,然后使用公钥执行RSA操作。“解密”是指使用私钥执行RSA操作,然后删除填充。
内置的Encrypt和Decrypt方法正在执行这些操作,包括知道使用哪一个密钥。
RSA加密进一步仅被定义为一次性操作,这意味着其结果被限制为内容字节数的总数小于RSA模数中的字节数(对于PKCS#1少11个字节,并且OAEP的减少更大,这取决于所选择的OAEP散列算法)。因为首先签名哈希,所以在RSA中处理的数据量是固定大小的。在正常的RSA加密情况下,被加密的东西是对称(AES)密钥,或构建AES密钥的某种方法。那要小得多。
最终,这条路径的结论是“不,.NET不允许你这么做”。
如果您正在运输许可证,行业标准的方法是签署它。记住要包含一个随时间替换许可证颁发者密钥的机制,例如写下签名证书。或者使用PKCS#7/CMS Signed Data之类的东西,如System.Security.Cryptography.PKCS.SignedCMS在.NET中公开的那样,因为它是用于传输数据、签名和签名证书的预定义格式--只需检查CMS.SignerInfos[0].Certifice
是否可接受,然后如果CheckSignature(真)
没有抛出,就可以开始了。
我找到了几个可以使用的解决方案。Net RSA Provider使用公钥对消息进行加密,并使用私钥对其解密。 但我想要的是用私钥加密,用公钥解密。 我希望在我的应用程序中存储公钥,并使用私钥加密许可证,例如在我的开发人员计算机上,将其发送到应用程序,并让信息使用公钥解密。 我怎样才能做到这一点?
我被告知,对于非对称密码学,您使用公钥加密明文,并使用私钥解密明文。所以我尝试了以下方法: 以及加密和解密函数 我希望控制台显示,但它显示的是这个。我是否错误地使用了RSACryptoServiceProvider?
并且我将这个函数称为用RSA公钥加密DSA密钥的函数:
我对RSA只有一些非常基本的理论知识。 在阅读不同来源的关于如何在实践中使用它的资料时,PKCS#1 OAEP似乎是一件好事。 对于测试实现,我使用Python和PyCrypto。例如,这是一个使用PKCS#1 OAEP的示例。 使用公钥加密,然后使用私钥解密,效果很好。例如,公众可以使用私钥向X个人发送一些数据。 从我对RSA工作原理的基本理解来看,我认为我可以交换公钥/私钥,也就是说,我可以使
本文向大家介绍基于私钥加密公钥解密的RSA算法C#实现方法,包括了基于私钥加密公钥解密的RSA算法C#实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了基于私钥加密公钥解密的RSA算法C#实现方法,是一种应用十分广泛的算法。分享给大家供大家参考之用。具体方法如下: 一、概述 RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出
我想使用带有RSA算法的OpenSSL使用私钥加密文件: 现在,如果我执行解密操作: 此操作需要私钥 我知道我应该使用公钥进行加密,如果我使用私钥,我会得到一个签名。 然而,我想这样做是为了学习。