那位对RSA加密比较懂得。帮忙看个问题
www.mcxiao.net/a.js 代码贴不上大家打开这个地址。具体打开可以在这里看
这是一段 JS实现的RS加密。
我现在想用C# 去实现 应该怎么弄
先说一下请求一个地址
返回的东西
- HTML code
NgbSecurity.HandleResponse('<nxaml><object name="result"><string name="e" value="010001" /><string name="m" value="A3A69317FB92A534912A0999A7EEE826358C05F434C5E1EDB61C68E882CE52F7573FA44CE46E858673A8A328E17712FDAAECF383F13ECC1FD9D1505D2F23C983AD36F951788DEE30F1AE2A34F2DB13E46C409980A5467E05C7667AAD896464ABB073AA01AAFE130E28FA4D3D6A57ECA8422A482E22C5E0BA67434160B95A68DF" /><string name="h" value="ivbol+DfWZPecQS5hhZxtflgGzQ=" /></object></nxaml>');
其中E应该是公钥 "010001" M是 modulus
A3A69317FB92A534912A0999A7EEE826358C05F434C5E1E
DB61C68E882CE52F7573FA44CE46E858673A8A328E17712F
DAAECF383F13ECC1FD9D1505D2F23C983AD36F951788DEE30F1A
E2A34F2DB13E46C409980A5467E05C7667AAD896464ABB073AA01AAF
E130E28FA4D3D6A57ECA8422A482E22C5E0BA67434160B95A68DF
对应的JS
- JScript code
RSAKeyPair = function( encryptionExponent, decryptionExponent, modulus ) { this.e = biFromHex( encryptionExponent ); this.d = biFromHex( decryptionExponent ); this.m = biFromHex( modulus ); this.digitSize = 2 * biHighIndex( this.m ) + 2; this.chunkSize = this.digitSize - 11; this.radix = 16; this.barrett = new BarrettMu( this.m ); }
请问上面这一步是做什么用的 数字签名吗?我不太明白RSA 请高手给个C#的实现方法。
[解决办法]
你还不如看一个c#的rsa加密的例子,.Net类库中提供RSACryptoServiceProvider类实现rsa算法,
参考这个:
http://blog.chinahr.com/blog/%B3%CC%D3%A2%BA%BC/post/29792
或者参考msdn有关RSACryptoServiceProvider的例子,
[解决办法]