php[world] 2015 Schedule Announced

openssl_decrypt

(PHP 5 >= 5.3.0)

openssl_decryptDécrypte les données

Description

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

Prend une chaine brute ou base64 encodée et la décrypte en utilisant la méthode et la clé passées.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

data

Les données.

method

La méthode de cipher.

password

Le password.

options

Le paramètre options peut prendre comme valeur OPENSSL_RAW_DATA ou OPENSSL_ZERO_PADDING.

iv

Un vecteur d'initialisation non-nul.

Valeurs de retour

La chaine décryptée en cas de succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Émets une erreur de niveau E_WARNING si un algorithme cipher inconnu est passé via method.

Émets une erreur de niveau E_WARNING si une valeur vide est passée comme paramètre iv.

Historique

Version Description
5.3.3 Le paramètre iv a été ajouté.
5.4.0 Le paramètre raw_output a été changé en options.

Voir aussi

add a note add a note

User Contributed Notes 2 notes

up
3
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
-6
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