Portál AbcLinuxu, 13. května 2025 20:10

Dotaz: Java keystore klíče v PHP

6.11.2009 04:02 camel1cz | skóre: 25
Java keystore klíče v PHP
Přečteno: 389×
Odpovědět | Admin
Ahoj lidi,

už fakt nevím co s tím - mám veřejný RSA klíč, uložený v javovém JKS store a potřebuju s ním v PHP dekryptovat text. Povedlo se mi pomoci java aplikace exportovat jen ten veřejný klíč, ale je v binárním formátu a openssl v PHP se to nelíbí - zkoušel sem všelijak konvertovat tento soubor, ale prostě nevím jak...

Už se s tím mořím hodiny a pořád bez úspěchu :-(

Vidíte do toho někdo a poradíte?

Děkuju moc.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.11.2009 08:39 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Java keystore klíče v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud byl jks vygenerován s použitím RSA, zkusil bych něco jako:
keytool -export -file pkcs12.der -keystore keystore.jks
a následně buď
openssl x509 -inform der -outform -pem -in pkcs12.der -out pkcs12.pem
nebo
(echo "-----BEGIN PUBLIC KEY-----";
openssl enc -in pkcs12.der -a;
echo "-----END PUBLIC KEY-----") > pkcs12.pem
Ale neručím za to, preferuji pkcs12 před jks.
6.11.2009 11:53 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Java keystore klíče v PHP
Díky moc za odpověď!

Povedlo se mi podle toho návodu získat *.pem (což se mi povedlo už i dříve), ale nedokážu s ním dešifrovat kryptovanou zprávu.

Pár klíčů vnikl přes:

keystore -genkey -keyalg RSA...

V java aplikaci sem vygeneroval šifrovaný text, který se snažím dešifrovat v PHP. Zkouším to následovně:

$key = openssl_get_publickey($obsah_souboru_pem); openssl_public_decrypt($encrypted, $decrypted, $key); echo $decrypted;

Funkce get_publickey projde a vrátí správně key resource. Funkce decrypt mi vrací pořád false (netuším jak se zjistí proč).

Napadá mě jeden možný důvod - je možné, že si ta šifrovací javaapp přidává do šifrované zprávy nějaká data - tedy otázka zní (sorry za lame dotaz): Je možné, že pokud je zpráva poškozená, dešifrování selže? Nebo prostě projde, jen vráti samozřejmě nesmyslná data?

Díky za pomoc!
6.11.2009 21:32 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Java keystore klíče v PHP
Tak mi to trvalo celý den a problém je vyřešen - ani nevím, jestli mám nadávat na sebe nebo na autora toho proprietálního autentikačního mechanizmu, pro který sem psal knihovnu.

Prostě ta zpráva byla ještě po zašifrování modifikována (přičtena konstanta)... nakonec sem to přepsal s disassemblené javové classy - no chuťovka :-)

Rozhodně děkuju za čas a pomoc!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.