RSA使用模数和指数的公钥加密

时间:2015-07-23 10:48:15

标签: c# encryption windows-phone-8.1 rsa win-universal-app

我想使用带有给定模数和指数值的RSA生成公钥。

{{1}}

以下是异常消息:“满足ASN1错误标记值。(HRESULT异常:0x8009310B)”

StackTrace:“在Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider.ImportPublicKey(IBuffer keyBlob,CryptographicPublicKeyBlobType BlobType)    在MyProject.General.Utility.RSAPublic(String toEncrypt)“

我无法找出生成加密字符串所需的CryptographicKey的正确方法。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你应该看看你的公钥格式, 密钥格式必须遵守ans.1规则。 看看这个问题 RSA Public Key format

如果您仍然不确定格式,只需使用AsymmetricKeyAlgorithmProvider创建两个或三个或更多公钥并将它们转换为十六进制字符串。

你可以找到格式。

我使用rsapkcs1创建示例公钥 30818902818100ae037f0bcb6b4a5b661d7fc43178133b190f12f6c4e0e3ca694d4ec47458862b89691cb06767aa5054a92fc61ec8dc5c53983341c78ba3b95faf887b108093b41632a2ae324b0aaccab4172d83d7691476a6a97683d595355bd0bfa1fa5ea4d9cf2d5836ddb471de1df34ec27b6f0c4f903a13b6700cfb08ada8e43cf3b0cf7b0203010001

如果使用RsaPkcs1创建密钥,则公钥将以 30818902818100 ae037f0bcb6b4a5b661d7fc43178133b190f12f6c4e0e3ca694d4ec47458862b89691cb06767aa5054a92fc61ec8dc5c53983341c78ba3b95faf887b108093b41632a2ae324b0aaccab4172d83d7691476a6a97683d595355bd0bfa1fa5ea4d9cf2d5836ddb471de1df34ec27b6f0c4f903a13b6700cfb08ada8e43cf3b0cf7b 结束于0203010001

只需加入标题和尾部即可填写格式。