Programación Web y Scripting > PHP
Encriptacion con PHP y OpenSSL
(1/1)
LeGatoRojo:
Tengo una duda enorme, tengo dos codigos
--- Código: PHP --- $cadenaUTF8 = utf8_encode($cadena); $cadenaMD5 = md5($cadenaUTF8); $ar=fopen("selloMD5.txt", "wt"); if($ar) { fwrite($ar, $cadenaMD5); } fclose($ar); exec("openssl dgst -sign $key -out selloRSA.txt selloMD5.txt"); $ar=fopen("selloRSA.txt", "rt"); if($ar) { $sello=""; while(!feof($ar)) { $sello.=fgets($ar, 10000); } } fclose($ar); $sello=base64_encode($sello);
Y
--- Código: PHP --- $cadenaUTF8 = utf8_encode($cadena); $fp = fopen ("utf8.txt", "w+"); fwrite($fp, $cadenaUTF8); fclose($fp); exec("openssl dgst -md5 -sign $key utf8.txt | openssl enc -base64 -A -out selloFinal.txt"); $ar=fopen("selloFinal.txt", "rt"); if($ar) { $sello=""; while(!feof($ar)) { $sello.=fgets($ar, 10000); } } fclose($ar);
Ambos me dan resultados distintos, pero lo que es mas importante, cual de los dos cumpliria con obtener una cadena normal, posteriormente codificarla a utf8, aplicarle un md5, despues un rsa usando la llave del archivo $key y finalmente encriptarlo en base64.
Por su atención, gracias
LeGatoRojo:
Bueno, pues me respondo a mi mismo, el segundo código es el correcto...¿Razón?, aún no lo sé...
jordyjes:
bro yo ando haciendo este mismo proceso, pero tengo una duda, como es que haces que tu codigo funcione con el comando exec,sin necesidad de poner la ruta donde se encuentra openssl.exe
Navegación
Ir a la versión completa