Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

340
Visualizações
Cómo descifrar con PHP una cadena que está cifrada en CryptoJS en javascript

Ciframos una cadena en JS con este código por esta biblioteca JS :

 CryptoJS.AES.encrypt("Message", "Key").toString()

y luego guárdelo en la base de datos para futuros casos de uso. Ahora queremos descifrar ese hash en PHP con este código:

 openssl_decrypt( "Message", "aes-128-ctr", "Key")

pero nos da un valor nulo! ¿Cómo podemos hacerlo sin hacer ningún cambio en el código JS?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En el lado JS haz esto:

 var CryptoJSAesJson = { stringify: function (cipherParams) { var j = { ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64) }; if (cipherParams.iv) j.iv = cipherParams.iv.toString(); if (cipherParams.salt) js = cipherParams.salt.toString(); return JSON.stringify(j); }, parse: function (jsonStr) { var j = JSON.parse(jsonStr); var cipherParams = CryptoJS.lib.CipherParams.create({ ciphertext: CryptoJS.enc.Base64.parse(j.ct), }); if (j.iv) cipherParams.iv = CryptoJS.enc.Hex.parse(j.iv); if (js) cipherParams.salt = CryptoJS.enc.Hex.parse(js); return cipherParams; }, }; let data = CryptoJS.AES.encrypt("Text", "Key", { format: CryptoJSAesJson, }).toString(); //store the "data" in DB or another place

y en PHP Side haz esto:

 function cryptoJsAesDecrypt($passphrase, $jsonString){ $jsondata = json_decode($jsonString, true); $salt = hex2bin($jsondata["s"]); $ct = base64_decode($jsondata["ct"]); $iv = hex2bin($jsondata["iv"]); $concatedPassphrase = $passphrase.$salt; $md5 = array(); $md5[0] = md5($concatedPassphrase, true); $result = $md5[0]; for ($i = 1; $i < 3; $i++) { $md5[$i] = md5($md5[$i - 1].$concatedPassphrase, true); $result .= $md5[$i]; } $key = substr($result, 0, 32); $data = openssl_decrypt($ct, 'aes-256-cbc', $key, true, $iv); return $data; } echo cryptoJsAesDecrypt("Key",data); // will show "Text"

fuente: este enlace

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda