質問

次のように構成された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表現する必要があります。

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

ありがとう!

役に立ちましたか?

解決

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

他のヒント

結果のpemを読みやすいものにしたい人のために 弾む城:

  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

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

しかし、リンクが変更されました、それは今では利用可能です ここ

この便利なオンラインツールを見つけました RSAキーコンバーター, 、サポートしています

  • xml-> pem
  • pem-> xml

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キー、パテキーズ、PKCS1キーをサポートしています。フォーマットを自動検出してロードし、getPrivateKey / getPublicKeyがパラメーターが提供されていない場合、デフォルトでPKCS1フォーマットキーを出力します。より詳しい情報:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top