c#怎么调用java生成的RSA 公钥进行加密

Python011

c#怎么调用java生成的RSA 公钥进行加密,第1张

.NET无法调用JAVA产生的RSA公钥,必须将RSA算法在.NET里面重写才行,在.NET里面RSA的公钥长度是128位的,但是你给出的JAVA公钥却是159位长度,非常的不标准,公钥长度不满足128的肯定无法给.NET使用。

这里最多帮做个对应解析,数据是肯定无法用的:

将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核心运算

读公钥密钥库是用keytool生成的,用的类都是java.security.*的) String keyfile = "D:\\ttt\\server.jks "//密钥库路径 String keyalias = "alice "//密钥库别名 char[] keypassword = "password ".toCharArra...