Carpeta helpers

This commit is contained in:
Axel Axt
2026-08-04 19:21:38 -03:00
parent 7f405c834b
commit 9ef9194f9e
6 changed files with 734 additions and 0 deletions
+57
View File
@@ -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
);
}