java生成的 RSA公钥格式:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZoqP0Ce
TVWB6lL7bdX4iilWEbr03hmgvoBTYO5rzTJEboVcdPwYMT6/qp
jLFfDCu3qytxf+WuRqJVCsw11m4EqypTeyKy3PhkybUG/IoCYE
FwQlq24kIyXQiWUdTJT6FhLDKSfEUqUHpENbXmDZBXM
+Hf4hsEDUKV2kkhRJsnwwIDAQAB
而net 的公钥是xml格式:
<RSAKeyValue><Modulus>vpUk3hmR9kDdo8+AoLfFqpP/JlPkU6VDlMaDq
F5WoNUQcdUsfUT4cQSZaa5O/aeDP2llvPL0paQmlXn1bV2A0dJKTnvlWNQC
/QGFlcVIfSWeDaZnZDn/Z1XEqwBKMnZtCIQZQPws7kqlouV9CmjcA2i8Fm9
S0fDl7F6CfJfJlsM=</Modulus><Exponent>AQAB</Exponent>
</RSAKeyValue>.net怎么调用java生成的RSA
公钥进行加密?
求助 !!
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZoqP0Ce
TVWB6lL7bdX4iilWEbr03hmgvoBTYO5rzTJEboVcdPwYMT6/qp
jLFfDCu3qytxf+WuRqJVCsw11m4EqypTeyKy3PhkybUG/IoCYE
FwQlq24kIyXQiWUdTJT6FhLDKSfEUqUHpENbXmDZBXM
+Hf4hsEDUKV2kkhRJsnwwIDAQAB
而net 的公钥是xml格式:
<RSAKeyValue><Modulus>vpUk3hmR9kDdo8+AoLfFqpP/JlPkU6VDlMaDq
F5WoNUQcdUsfUT4cQSZaa5O/aeDP2llvPL0paQmlXn1bV2A0dJKTnvlWNQC
/QGFlcVIfSWeDaZnZDn/Z1XEqwBKMnZtCIQZQPws7kqlouV9CmjcA2i8Fm9
S0fDl7F6CfJfJlsM=</Modulus><Exponent>AQAB</Exponent>
</RSAKeyValue>.net怎么调用java生成的RSA
公钥进行加密?
求助 !!
将java的RSA公钥最后四个字母AQAB分割开,用.NET的xml格式表示就是
<RSAKeyValue><Modulus>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZoqP0Ce
TVWB6lL7bdX4iilWEbr03hmgvoBTYO5rzTJEboVcdPwYMT6/qp
jLFfDCu3qytxf+WuRqJVCsw11m4EqypTeyKy3PhkybUG/IoCYE
FwQlq24kIyXQiWUdTJT6FhLDKSfEUqUHpENbXmDZBXM
+Hf4hsEDUKV2kkhRJsnwwID</Modulus><Exponent>AQAB</Exponent>
</RSAKeyValue>
这里的数据都是用的BASE64编码,你用BASE64解码后可以得到byte[],就可以看到密钥长度了,实际密钥要转换为BigInteger后才能参与RSA核心运算。
string pubkey = "<RSAKeyValue><Modulus>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZoqP0Ce
TVWB6lL7bdX4iilWEbr03hmgvoBTYO5rzTJEboVcdPwYMT6/qp
jLFfDCu3qytxf+WuRqJVCsw11m4EqypTeyKy3PhkybUG/IoCYE
FwQlq24kIyXQiWUdTJT6FhLDKSfEUqUHpENbXmDZBXM
+Hf4hsEDUKV2kkhRJsnwwID</Modulus><Exponent>AQAB</Exponent>
</RSAKeyValue>";
string s = "测试测试";
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.FromXmlString(pubkey);
rsa.FromXmlString(pubkey);
byte[] bytes = Encoding.Default.GetBytes(s);
var tmp = rsa.Encrypt(bytes, false);
var encryptstring = Convert.ToBase64String(tmp);
}
有方法的 自动生成
你还是看看 这里吧
http://blog.csdn.net/caitianzhen2/article/details/7210858
ASN.1标准有SubjectPublicKeyInfo数字证书格式(你提供的第一种格式)和PKCS
CryptoAPI标准有CSP Parameter(后面的那种格式)和CSP容器。他们之间是可以进行转换的,可以参考:http://www.jensign.com/JavaScience/dotnet/JKeyNet/RSA非对象加密在同一种填充模式和保持相同字节顺序下的加解密结果是相同的。