日期:2014-05-17  浏览次数:20881 次

那位对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="A3A69317FB92A534912A0999A7EEE826358C05F434
C5E1EDB61C68E882CE52F7573FA44CE46E858673A8A328E17
712FDAAECF383F13ECC1FD9D1505D2F23C983AD36F9517
88DEE30F1AE2A34F2DB13E46C409980A5467E05C7667AAD8
96464ABB073AA01AAFE130E28FA4D3D6A57ECA8422A482E22C5E0BA67434160B95A68DF" />
<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的例子,
------解决方案--------------------
探讨
010001公钥 好像很郁闷的说