05/03/2020, 17:20
|
| | Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años, 7 meses Puntos: 120 | |
Respuesta: encriptar y desencriptar datos para enviar por get Cita:
Iniciado por trofserpiente tengo estas funciones para encriptar y desencriptar pero me arroja este error openssl_decrypt(): IV passed is only 15 bytes long, cipher expects an IV of precisely 16 bytes, padding with \0 in php varia los bytess segun lo que se encripte.
este es el codigo Código PHP: class Encryption {
var $skey = "datosystem1234"; // llave privada
var $method = 'aes-256-cbc';
public function encode($value){
if(!$value){return false;}else{
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted=openssl_encrypt($value, $this->method, $this->skey, 0, $iv);
return base64_encode($encrypted."::".$iv);
}
}
//**************************************************************************************
public function decode($value){
if(!$value){return false;}else{
list($encrypted_data, $iv) = explode('::', base64_decode($value), 2);
//list($encrypted_data, $iv) = explode('::', trim($this->safe_b64decode($value)), 2);
return openssl_decrypt($encrypted_data, $this->method, $this->skey, 0, $iv);
}
}
}
si el algo normal ejemplo: casa ; lo desencripta y desencripta normal.
gracias de antemano; por la ayuda.
Código PHP: <?php
class Encryption {
var $skey = "datosystem1234"; // llave privada
var $method = 'aes-256-cbc';
public function encode($value){
if(!$value){return false;}else{
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted=openssl_encrypt($value, $this->method, $this->skey, 0, $iv);
return base64_encode($encrypted."::".$iv);
}
}
//**************************************************************************************
public function decode($value){
if(!$value){return false;}else{
list($encrypted_data, $iv) = explode('::', base64_decode($value), 2);
//list($encrypted_data, $iv) = explode('::', trim($this->safe_b64decode($value)), 2);
return openssl_decrypt($encrypted_data, $this->method, $this->skey, 0, $iv);
}
}
}
$enc= new Encryption();
$txt_encoded= $enc->encode("hola como estas");
var_dump(($txt_encoded) );
var_dump($enc->decode($txt_encoded) ); la funcion esta perfecta, que version de PHP usas?? y en que entorno, windows,linux, apache, modo consola?? etc
__________________ Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion https://paypal.com/pools/c/8lmNLmWnG9 |