Carpeta helpers
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
function encryptData($data) {
|
||||
|
||||
// Genera una clave de 256 bits a partir de APP_KEY (hash SHA-256)
|
||||
|
||||
$key = hash('sha256', APP_KEY);
|
||||
|
||||
// IV (Initialization Vector):
|
||||
// valor aleatorio necesario para el cifrado CBC
|
||||
// debe ser único por cada encriptación (16 bytes para AES)
|
||||
|
||||
$iv = random_bytes(16);
|
||||
|
||||
// Encripta los datos usando AES-256-CBC
|
||||
|
||||
$encrypted = openssl_encrypt(
|
||||
$data, // dato original
|
||||
'AES-256-CBC', // algoritmo de cifrado
|
||||
$key, // clave derivada
|
||||
0, // opciones (0 = salida base64 por defecto)
|
||||
$iv // vector de inicialización
|
||||
);
|
||||
|
||||
// Se concatena IV + dato encriptado y se codifica en base64 para poder almacenarlo o transportarlo como string
|
||||
|
||||
return base64_encode($iv . $encrypted);
|
||||
}
|
||||
|
||||
function decryptData($data) {
|
||||
|
||||
// Regenera la misma clave usada en el cifrado
|
||||
|
||||
$key = hash('sha256', APP_KEY);
|
||||
|
||||
// Decodifica el string base64
|
||||
|
||||
$data = base64_decode($data);
|
||||
|
||||
// Extrae el IV (primeros 16 bytes)
|
||||
|
||||
$iv = substr($data, 0, 16);
|
||||
|
||||
// Extrae el contenido cifrado
|
||||
|
||||
$encrypted = substr($data, 16);
|
||||
|
||||
// Desencripta el contenido usando los mismos parámetros
|
||||
|
||||
return openssl_decrypt(
|
||||
$encrypted,
|
||||
'AES-256-CBC',
|
||||
$key,
|
||||
0,
|
||||
$iv
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user