在很短的问题:我如何填写RSAParameters如果我从第三方?:具有下列输入.net中RSA公钥模数和指数的格式是什么?
模量:123456
Exponet:111
在一个漫长的故事,我使用以下代码:
RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider(2048);
RSAParameters rsaPublic = RSAalg.ExportParameters(false);
然后我可以在byte []中获得rsa公钥的模数和指数。为了写在ASN.1格式
RSAPublicKey ::= SEQUENCE {
modulus INTEGER, -- n
publicExponent INTEGER -- e
}
我用ASN.1库,以字节[]转换到其BIGINTEGER格式这些信息,但是这个字节[]应该是一样的格式{0 ','1','2','3','4','5','6','7','8','9'},假设它是十进制的。
但它看起来像rsaPublic.modulus和rsaPublic.exponent不是这种格式,在模数和指数的byte []中有很多非数字。那么rsaPublic.modulus和rsaPublic.exponent的格式是什么,以及如何将它们转换为格式如{'0','1','2','3','4','5 ','6','7','8','9'}?
非常感谢
我使用了一个asn.1库。它可以很容易地处理asn.1公钥格式。但问题是我不知道如何将byte []中的.net模数转换为合理的字节[],如{'0','1','2','3','4','5' ,'6','7','8','9'},字节[]中的rsa模量似乎没有意义,它是以某种格式编码的? – travellover 2010-02-19 00:38:10
它基本上是作为大端字节数组的整数,前面有一些标题字节。等价地,它是以256为底数表示的整数。你想用byte []来做什么,那么也许我可以给出更好的线索。 – 2010-02-19 00:45:21
我需要它们通过.net RSA模数和指数生成PKCS#1 asn.1 RSA公钥。 我的方法是使用asn.1库。它可以在base-2,base-18,base-10或base-16中接受byte []中的模数和指数,然后生成自己的大整数,然后生成PKCS#1公钥格式。 所以首先我想通过.net RSA模数和指数生成biginteger。 .net RSA模数和指数在byte []中,但并不是所有这些byte []中的元素都是ASCII数字,对不对? 我希望你能理解我在说什么。 – travellover 2010-02-19 05:44:27