14

次のような構造の 2 つの XML ファイルがあります。

私の鍵

<RSAKeyValue>
  <Modulus> ... </Modulus>
  <Exponent> ... </Exponent>
  <P> ... </P>
  <Q> ... </Q>
  <DP> ... </DP>
  <DQ> ... </DQ>
  <InverseQ> ... </InverseQ>
  <D> ... </D>
</RSAKeyValue>

公開鍵

<RSAKeyValue>
   <Modulus> ... </Modulus>
   <Exponent> ... </Exponent>
</RSAKeyValue>

xmlseclibs物事を暗号化および復号化するためにキーの .PEM 表現を必要とする Robert Richardsのライブラリを使用しています。

暗号化の初心者として、どこから始めればよいかわかりません。Google でざっと検索しても、特に明白な情報は見つかりませんでした...

ありがとう!

4

7 に答える 7

10

私はそれを行うことができるJavaユーティリティを見つけました。

于 2010-06-23T14:47:27.293 に答える
2

結果の PEM をBouncyCastleで読み取り可能にしたい場合:

  1. XMLSec2PEMツールを使用して pem ファイルを取得する
  2. pem を pkcs8 に変換して戻す (!)

私が満足している最終的な解決策:

  1. java XMLSec2PEM my.xml > my.pem
  2. my.pem手動で少し編集
  3. org.bouncycastle.openssl.PEMReader.readObject()戻り値null:-(
  4. openssl pkcs8 -topk8 -inform pem -in my.pem -outform pem -nocrypt -out my.pkcs8
  5. openssl pkcs8 -inform pem -nocrypt -in my.pkcs8 -out my.pkcs8.pem
  6. my.pkcs8.pemで読み取ることができるようになりましたPEMReader
于 2013-11-20T16:10:29.873 に答える
0

私はまったく同じ問題を何時間も探していました。このJavaツールは仕事をしました:)

ただし、リンクが変更されたため、ここから利用できるようになりました

于 2011-07-15T22:46:15.167 に答える
0

xmlseclibs は PHP であるため、別の PHP ソリューションが望ましいと思われます。方法は次のとおりです。

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();
$rsa->loadKey('<RSAKeyValue>
  <Modulus> ... </Modulus>
  <Exponent> ... </Exponent>
  <P> ... </P>
  <Q> ... </Q>
  <DP> ... </DP>
  <DQ> ... </DQ>
  <InverseQ> ... </InverseQ>
  <D> ... </D>
</RSAKeyValue>');

$privatekey = $rsa->getPrivateKey();
$publickey = $rsa->getPublicKey();
?>

phpseclib には、XML キー、PuTTY キー、および PKCS1 キーのサポートが組み込まれています。フォーマットを自動検出してロードし、パラメーターが指定されていない場合、getPrivateKey / getPublicKey はデフォルトで PKCS1 フォーマットのキーを出力します。より詳しい情報:

http://phpseclib.sourceforge.net/rsa/examples.html#convert

于 2014-06-18T13:52:50.563 に答える
-2

サポートするこの便利なオンライン ツールRSA Key Converterを見つけました。

  • XML -> PEM
  • PEM -> XML
于 2013-01-29T06:24:31.090 に答える