PHP 5.4.40 Released

openssl_decrypt

(PHP 5 >= 5.3.0)

openssl_decryptDesencripta datos

Descripción

string openssl_decrypt ( string $data , string $method , string $password [, int $options = 0 [, string $iv = "" ]] )

Toma una cadena codificada en bruto o mediante base64 y la desencripta usando un método y una clave.

Advertencia

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

Parámetros

data

Los datos.

method

El método de cifrado.

password

La contraseña.

options

options puede ser una de las constantes OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

Un Vector de Inicialización no NULL.

Valores devueltos

La cadena desencriptada si se tuvo éxito o FALSE en caso de error.

Errores/Excepciones

Emite un error de nivel E_WARNING si se pasa un algoritmo de cifrado desconocido mediante el parámetro method.

Emite un error de nivel E_WARNING si se le pasa un valor vacío mediante en parámetro iv.

Historial de cambios

Versión Descripción
5.3.3 Se añadió el parámetro iv.
5.4.0 raw_output se cambió a options.

Ver también

add a note add a note

User Contributed Notes 2 notes

up
2
ittasks at gmail dot com
2 years ago
in case that hosting do not provide openssl_encrypt decrypt functions - it could be mimiced via commad prompt executions 
this functions will check is if openssl is installed and try to use it by default

function sslPrm()
{
return array("your_password","IV (optional)","aes-128-cbc");
}
function sslEnc($msg)
{
  list ($pass, $iv, $method)=sslPrm();
  if(function_exists('openssl_encrypt'))
     return urlencode(openssl_encrypt(urlencode($msg), $method, $pass, false, $iv));
  else
     return urlencode(exec("echo \"".urlencode($msg)."\" | openssl enc -".urlencode($method)." -base64 -nosalt -K ".bin2hex($pass)." -iv ".bin2hex($iv)));
}
function sslDec($msg)
{
  list ($pass, $iv, $method)=sslPrm();
  if(function_exists('openssl_decrypt'))
     return trim(urldecode(openssl_decrypt(urldecode($msg), $method, $pass, false, $iv)));
  else
     return trim(urldecode(exec("echo \"".urldecode($msg)."\" | openssl enc -".$method." -d -base64 -nosalt -K ".bin2hex($pass)." -iv ".bin2hex($iv))));
}

//example of usage:
$r= sslEnc("This is encryption/decryption test!");
echo "<br>\n".$r.":".sslDec($r);
up
-3
Anonymous
1 year ago
If your using windows os, do not use the text inside the "file previewer" pane, as this is a truncated version of the actual encrypted string.

Instead, you need to open the file directly and use the contents there.

The error message I had been getting was:
"error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length"
To Top