سؤال

لدي ملفان 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 السريع عن أي شيء واضح بشكل خاص ...

شكرًا!

هل كانت مفيدة؟

المحلول

لقد وجدت أ فائدة جافا يمكن أن تفعل ذلك.

نصائح أخرى

بالنسبة لأولئك الذين يريدون أن يكون القراءة من قبل 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