2016-07-24 16 views
1

.NETからSpring 4(Java)にアプリケーションを移植しようとしています。 .NET RSACryptoServiceProviderで以前に暗号化されたJavaでパスワード復号化を行うにはどうすればよいですか?私はJavaの背景です。.NETからJava/SpringへのRSA公開鍵/秘密鍵解読を実装する

私は、.NETのprivatekey.xmlファイルを持っています。

<RSAKeyValue> 
<Modulus>dfgkjkdfg99444</Modulus> 
<Exponent>ABCD</Exponent> 
<P>dadskfkkeej3434j==</P> 
<Q>sdakfksa/sdfd/sdf3wfsd==</Q> 
<DP>sdERfdsf333==</DP> 
<DQ>sdfsd222sdfEWEf==</DQ> 
<InverseQ>kadkfimmds+/sdkks+/sdfsdkKKD==</InverseQ> 
<D>sdfsadfsadfsadfdsafasdfsadfsadfdsafdsf=</D> 
</RSAKeyValue> 

質問/秒:

この中に実際の秘密鍵があるこれは、秘密鍵sampelコードですか? 暗号化されたテキストを暗号化するために塩として使用できますか?この秘密鍵を使用してJavaで復号化関数を作成するにはどうすればよいですか?これらのパラメータを受け入れるJavaの関数が既に存在していますか?どんな例?

私は既にRSAに関する多くの理論的な記事を読みました。しかし、このシナリオの理解には役に立たなかった。したがって、Javaでこのシナリオを処理するためのサンプルコード、Javaでのカウンターパートの例、有用な記事へのリンクなどは非常に役に立ちます。

答えて

2

あなたは秘密鍵を構成する要素を含むXMLを持っています。これらの要素はベース64でエンコードされています。ベース64はバイト配列にデコードする。これらのバイト配列は、大小の整数エンコードされた数字を表します。すべての値が一緒に秘密鍵を構成します。

明らかに値自体が変更されているため、それ以上の変更は難しくなります。

だから基本的に、あなたはあなたがする必要がある次の手順を持っている:

  • は、XMLを解析します。
  • エンコードされた要素を取得します。
  • base64これらの要素をバイト配列にデコードします。
  • BigInteger
  • に配列を変換"RSA"KeyFactoryにスペックを供給RSAPrivateCrtKeySpec
  • に値を置きます。あなたもプライベートD値を持っていたよう

あなたもRSAPrivateyKeySpecを使用することができますが、あなたの結果のRSA操作が可能性が遅くなります。

+0

お手続きいただきありがとうございます。私はバイト配列を逆にする必要はありません。いくつかの実際の例もここにあります:http://stackoverflow.com/questions/36599453/translating-c-sharp-rsacryptoserviceprovider-code-to-java およびhttp://stackoverflow.com/questions/5527423/porting-net- rsa-xml-keys-to-java – nanospeck

関連する問題