2016-09-27 5 views
2

私はRSACryptoServiceProviderとC#で生成した公開鍵を持っています。これらのパラメータは、512ビット今c#RSACryptoServiceProviderの指数とモジュラスはどのような種類のデータですか?

new RSACryptoServiceProvider(512)  

に初期化RSA変数で生成され

<RSAKeyValue> 
    <Modulus> 
     4kKhD/FWAMtQTRifArfXjxZN+6bOXTkHrVpyz/1wODhSOBqDewoSOFAp5boBd3wFjXszHA+gpUxZNWHRTj898Q== 
    </Modulus> 
    <Exponent> 
     AQAB 
    </Exponent> 
<RSAKeyValue> 

、私はこれらの(弾性係数と指数を使用する必要があります)を使用してデータを暗号化しますが、Groovy(SoapUIテストのGroovscript)にあります。 groovyではRSA暗号化をテストしていましたが、公開鍵では10進数のモジュラスと指数しか得られませんでした。モジュラスは、上記のbase64文字列のように見えますが、私はグルーヴィーで解読しようとしたとき、それは私がそのために使用するコードは、私が最終的に係数を使用する方法を知っているとされる必要があるもの

byte[] decoded = encoded.decodeBase64() 
string s == new String(decoded) 

で、一部の特殊文字を取得しますc#で取得した指数で、groovyのデータを暗号化します。 これを行う方法についていくつかの助けがありますか?

答えて

3

ここでのXML表現では、数値はBase64エンコードされたBig Endianバイト配列の数値です。それらのための最も賢明な文字列形式(Base64以外)は16進数です。これはバイト境界で整列するためです。 BigIntのデコードルーチンを持つことがあります。あなたは最終小数にそのbase64文字列を変換するために使用した方法

指数

Base64: AQAB 
Hexadecimal: 01 00 01 
Decimal: 65537 

モジュラス

Base64: 
    4kKhD/FWAMtQTRifArfXjxZN+6bOXTkHrVpyz/1wODhSOBqDewoSOFAp5boBd3wFjXszHA+gpUxZNWHRTj898Q== 
Hexadecimal: 
    E2 42 A1 0F F1 56 00 CB 50 4D 18 9F 02 B7 D7 8F 
    16 4D FB A6 CE 5D 39 07 AD 5A 72 CF FD 70 38 38 
    52 38 1A 83 7B 0A 12 38 50 29 E5 BA 01 77 7C 05 
    8D 7B 33 1C 0F A0 A5 4C 59 35 61 D1 4E 3F 3D F1 
Decimal: 
    11 850 211 890 167 428 942 656 005 762 527 792 
    664 504 148 414 649 299 622 730 495 954 496 884 
    582 668 295 994 906 881 962 852 147 063 424 895 
    822 707 299 811 616 971 053 013 246 862 591 780 
    599 074 078 193 
+1

?私はあなたが何を言ったのか理解していますが、私は同じ結果に達することができません@bartonjs –

+1

@JuanFranciscoCaballero Base64-> Hexとhttp:// wwwのためにhttp://tomeko.net/online_tools/base64.php?lang=enを使いました。 Hex-> BigIntegerの場合はmobilefish.com/services/big_number/big_number.php。正確な変換ではないので、各バイトを整数に変換しないように注意してください。 – bartonjs

関連する問題