繁体   English   中英

RSACryptoServiceProvider仅使用私钥解密

[英]RSACryptoServiceProvider decrypt using only private key

我需要为应用程序生成许可证密钥。 我考虑过使用RSACryptoServiceProvider,但我注意到使用ToXmlString(true)生成的私钥也包含公钥。 问题是该应用程序将存储在客户端服务器上,我不希望他们能够使用我生成的密钥中的公共密钥部分来生成自己的许可证密钥。

例如,如果我有此私钥

<RSAKeyValue>
  <Modulus>mqZY4yfKdHJ6gl/5elFgSXnDLztsj6fpCmjNymYyeWa/4qVA66fydrAE5Rl2OVoNCRUTpCUM8paZxh2eqza5lETYRdfRw+4FNu2rO13synPTKirck0JucCDXytQBZZnD4SFCljJr3NDlYveuEk7NsdeIsHYypXvPtURhkDtDGG8=</Modulus>
  <Exponent>AQAB</Exponent>
  <P>zD53GW+HevT5SaWsvLwoT/qUO5MZXgbg7ME1OLwmzd99nRZuIayhLrkYZ9MWNnL2BWLGcRbj7GlOXUY2ouqsfQ==</P>
  <Q>wdamjYch6EQgXDe6lA/zb8lAWxO+Djjkrtda2cjwXrMoLbJUKVo3z/pmWCnNX9I3v5PtM8YoL4Pp6zXcVuloWw==</Q>
  <DP>L7goe3jjXob994cN5MrRYF5bY8/qjV1uD+LUXH0ZU+BzqNAkyxlaT2BPo3JeLjqN4JRDaQjAF+xCsuhEu6u4wQ==</DP>
  <DQ>umTai8WiCWNZatP8Cly8ToZL6Ei3vZ1f6fEUX9AltCq7PBX7cDhc6xVyTN0FrFrNWN+6fMrT4b0Lty53zutreQ==</DQ>
  <InverseQ>g+DldM+/FD/3vEop5o4T2xjL8SIYSFY3kjPIrIxFkzpVGb98jHYT+JNjdezw2n78AawqUhRBLCgDnC6K2YmINQ==</InverseQ>
  <D>Crtoh7sHLbWUEuAeLALhr7end+ujyQRaA8LqJRWagxpCTrQxISlyhhIJBO0Taz94kBzKVCXOFDenTDxZ+n+9uRS9zlg1nE3thEqrWf/fOMB+H+49HF/stSCyFp2+xqKFPBzwL2hrdixsEe5beWaM8r1nLChKzG3/BbVlY5/a2GE=</D>
</RSAKeyValue>

有没有在其中没有模数和指数标签的解密方法?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM