2010-09-27 9 views
0

Je ne suis pas sûr de l'endroit où publier cela, donc je commence ici et espère le meilleur. J'ai une clé publique et privée générée pour .NET. Les clés ont (Module, Exposant, etc ...). J'ai envoyé la clé publique à un tiers et ils l'ont utilisé pour crypter les mots de passe dans une base de données. J'ai téléchargé les mots de passe cryptés et maintenant je dois les décrypter de mon côté. Le problème vient quand il doit être décrypté sur un serveur UNIX. Peu m'importe si j'utilise php, java ou tout autre langage tant que cela fonctionne sur la boîte unix. Je suis une recrue complète aux clefs de RSA et apprécierais toute aide ou même une direction sur où je "devrais" signaler ceci. Merci d'avance ....décryptage RSA à partir de .NET en utilisant PHP

+0

Jetez un oeil à l'extension PHP OpenSSL pour commencer: http://www.php.net/manual/en/book. openssl.php – deceze

+0

Comment avez-vous récupéré les clés de .NET? Dans quel format sont-ils? –

+0

Merci pour le lien. J'ai essayé mais n'ai rien réussi à utiliser avec openssl. – user1796752

Répondre

2

Les valeurs semblent être codées en base64. Vous pouvez utiliser phpseclib's pure PHP RSA implementation et faire quelque chose comme ceci pour charger la clé publique:

$rsa->loadKey(array('modulus' => $modulus, 'exponent' => $exponent), CRYPT_RSA_PUBLIC_FORMAT_RAW); 

Pour la clé privée ... vous pourriez peut-être faire quelque chose comme ..

$rsa = new Crypt_RSA(); 
$rsa->modulus = $modulus; 
$rsa->publicExponent = $exponent; 
$rsa->exponents = array(1=> $dp, $dq) 
$rsa->coefficients = array(2 => $inverseq); 
$rsa->primes = array(1 => $p, $q); 

Ou quelque chose comme ça - je n'ont pas testé le code, mais un coup d'œil rapide sur le code de phpseclib suggère que ça marchera.

+0

J'apprécie vraiment l'notedshow d'aide. J'ai lu la documentation et dois avouer que je suis bien versé en php, je suis perdu quand il s'agit de RSA et de la mise en œuvre. J'ai la clé privée, la clé publique et le mot de passe crypté, mais comment utiliser ce que vous me montrez contre le mot de passe crypté? Désolé d'avance pour mon ignorance. – user1796752

+0

Merci pour l'aide, ça marche maintenant. – user1796752

-1

Il y a un bel article sur l'utilisation de format de clé de .NET avec PHP: Using PHP to encrypt/decryp/sign/verify data with .NET XML RSA key

+0

S'il vous plaît, essayez de lire ce http://stackoverflow.com/help/deleted-answers, pour obtenir plus de compréhension comment ** pas ** répondre.A savoir: "Les réponses qui ne répondent pas fondamentalement à la question": ** à peine plus qu'un lien vers un site externe ** –