Мне нужно сгенерировать лицензионный ключ для приложения. Я думал об использовании RSACryptoServiceProvider, но я заметил, что закрытый ключ, сгенерированный с помощью ToXmlString (true), также содержит открытый ключ. Проблема в том, что приложение будет храниться на серверах клиентов, и я не хочу, чтобы они могли генерировать собственный лицензионный ключ, используя часть открытого ключа из созданного ключа.RSACryptoServiceProvider расшифровывать, используя только закрытый ключ
Например, если у меня есть этот секретный ключ
<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>
есть способ расшифровать без него, имеющий модуль и экспоненту теги в нем?
Глупо использовать PKI для получения лицензий в приложении .Net. Его можно легко декомпилировать, и система лицензирования будет нарушена. Используйте ключ AES, встроенный в приложение. – i486