我用别人的生成密钥的工具OPENSSL。感觉麻烦。想自己写代码但好像结果类型不对。
类型PKCS1 长度2048
我的代码:
RSACryptoServiceProvider rsaCSP = new RSACryptoServiceProvider(2048);
//以下两句我加了和不加没区别。长度2048传入了,但PKCS1那里传入。这个随机生成的不符合要求,
RSAPKCS1SignatureFormatter sign = new RSAPKCS1SignatureFormatter(rsaCSP);
sign.SetHashAlgorithm("SHA256");
//以下是我得到的结果,代码正确。结果格式不正确。
string strPrivateXML = rsaCSP.ToXmlString(true);
string strPublicXML = rsaCSP.ToXmlString(false);
//以下两个转换没问题,主要是生成的类型不对。
string strPrivate = RSAPrivateKeyDotNet2Java(strPrivateXML);
string strPublic = RSAPublicKeyDotNet2Java(strPublicXML);
//以下是人家的工具。我的转换代码没问题,但要先用它的工具生成公钥和私钥,我生成的就无法转换,无法使用了。
看了我的类型结果RSA-SHA1 以下这个只有GET,无法设置为PCKS1
rsaCSP.SignatureAlgorithm
http://www.w3.org/2000/09/xmldsig#rsa-sha1
求代码,谢谢!