J'essaie de créer un WS pour faire une demande de savon. Dans le corps du message, il y a un champ qui contient un texte crypté. J'ai la clé publique pour crypter le texte mais le seul résultat que j'obtiens est que le texte n'est pas reconnu. J'utilise crypto module de noeud pour faire une requête et le texte est crypté mais je ne sais pas pourquoi n'est pas crypté correctement. Ps i fait la même chose sur php avec la fonction openssl_public_encrypt et de travail. Mais je dois le faire dans node.js.Node.js moyen correct de chiffrer rsa?
Une idée ou une suggestion? Qu'est-ce qui différencie openssl_public_encrypt de la fonction crypto.publicEncrypt?
Voici la partie chiffrent à Node.js:
var crypto = require("crypto");
var fs = require('fs');
fs.readFile("./certificate.pem", 'utf8', function (err, data) {
var bufferToEncrypt = new Buffer("textToEncrypt");
var encrypted = crypto.publicEncrypt({"key":data, padding:crypto.RSA_NO_PADDING}, bufferToEncrypt).toString("base64");
console.log(encrypted); // length 128
}
La même chose en php:
<?php
$publicKey = "./certificate.pem";
$plaintext = "textToEncrypt";
openssl_public_encrypt($plaintext, $encrypted, $publicKey);
echo base64_encode($encrypted); //encrypted string length 128
?>
Je n'ai pas la clé privée pour décrypter le texte, je ne dispose que la clé publique. Notez également que la longueur du texte crypté (en base64) est la même en php et en node.js.
Il est peu probable que quiconque puisse vous aider ici à moins d'inclure le code que vous utilisez pour le chiffrement et le décryptage afin que nous puissions voir ce que vous avez et essayer de déterminer ce que vous avez mal fait. – jfriend00
@ jfriend00 Vous avez raison! J'ai mis à jour le poste avec des morceaux de code pour la partie de cryptage – AngelPoyel