Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RSACryptServiceProvider仅使用私钥解密_C#_.net_Encryption - Fatal编程技术网

C# RSACryptServiceProvider仅使用私钥解密

C# RSACryptServiceProvider仅使用私钥解密,c#,.net,encryption,C#,.net,Encryption,我需要为应用程序生成许可证密钥。我曾考虑使用RSACryptServiceProvider,但我注意到使用ToXmlStringtrue生成的私钥也包含公钥。 问题是应用程序将存储在客户机服务器上,我不希望他们能够使用我生成的密钥的公钥部分生成自己的许可证密钥 例如,如果我有这个私钥 mqZY4yfKdHJ6gl/5ELFGSXNDLZTSJ6FPCMJNYMYEWA/4QVA66FYDRAE5RL2OVONCRUTPCUM8PAZXH2QZA5LETYRDFRW+4FNU2RO13SYNTKI

我需要为应用程序生成许可证密钥。我曾考虑使用RSACryptServiceProvider,但我注意到使用ToXmlStringtrue生成的私钥也包含公钥。 问题是应用程序将存储在客户机服务器上,我不希望他们能够使用我生成的密钥的公钥部分生成自己的许可证密钥

例如,如果我有这个私钥

mqZY4yfKdHJ6gl/5ELFGSXNDLZTSJ6FPCMJNYMYEWA/4QVA66FYDRAE5RL2OVONCRUTPCUM8PAZXH2QZA5LETYRDFRW+4FNU2RO13SYNTKIRCK0JUCDXYTQBZND4SFCLJR3NDL3DLYVEK7NSDEISHYPXVPTURRDGG8= AQAB

zD53GW+HevT5SaWsvLwoT/QUO5MZXGBG7ME1OLWMZD99NRZUIAYHLKYZ9MWNNL2BLGCRBJ7GLOXUY2OUQSFQ==

wdamjYch6EQgXDe6lA/zb8lAWxO+Djjkrtda2cjwXrMoLbJUKVo3z/PMWCNNX9I3V5PTM8YOL4PP6ZXCVUOWW== L7GOE3JXOB994CN5MRRYF5BY8/qjV1uD+LUXH0ZU+BzqNAkyxlaT2BPo3JeLjqN4JRDaQjAF+XCSU6U4WQ== UMTAI8WICWNZATP8CLY8TOZL6EI3VZ1F6FEUX9ALTCQ7PBX7CDHC6XVYTN0FRFRFRNWN+6fMrT4b0Lty53zutreQ== g+DldM+/FD/3VEOP5O4T2XJL8SIYSFY3KJPIRIXKZPVGB98JHYT+JNjdezw2n78AawqUhRBLCgDnC6K2YmINQ== CRTOH7SHLBWUEAELALHR7END+UJYQRAA8LQJRWAGXPCTRQXISLYIHIJBO0TAZ94KBZKVCXOFDENTDXZ+n+9URS9ZLG1NE3QRWF/fOMB+H+49HF/stSCyFp2+XQKFPBZWL2HRDIXSEE5EWAM8R1NLCHKZG3/BbVlY5/a2GE=
有没有一种方法可以在没有模数和指数标签的情况下对数据进行解密?

只有在拥有私钥的情况下才能对数据进行解密。因此,我不希望将密钥传递给您的客户端设备。否则任何人都可以访问pk并创建自己的许可证。
创建许可证并使用私钥对其进行签名会更有意义。然后,您的客户端应用程序将只检查有效的签名-我认为这是我在多个许可证服务实施中看到的最佳做法。

我的问题是,我还需要在许可证密钥中对一些数据进行编码为什么需要对其进行编码?我只能想象您和您的客户都知道的许可证详细信息,因此签名详细信息应该是“安全的”,不会被操纵,因为您是唯一一个使用私钥签名的人。或者你的意思是什么?应用程序被分为多个模块,我需要对每个模块的用户数量和许可证生效日期进行编码,但为什么需要对其进行编码?我可以使用我的cleartext或xml或您的应用程序可能解析的任何内容-您只需检查许可证内容是否具有有效的签名。应用程序将部署在客户端服务器上,数据库也将在那里,所以我需要一种方法来查看他们添加的用户是否没有超过他们购买的许可证数量。在.Net应用程序中使用PKI获取许可证是愚蠢的。它可以很容易地反编译,并且许可证系统将被破坏。使用嵌入在应用程序中的AES密钥。