Crypto
in package
FinalYes
Crypto — Helper de cifrado simétrico AES-256-GCM.
Se usa para almacenar credenciales sensibles en la BD trackingweb,
principalmente las columnas db_user_enc y db_pass_enc de la tabla
conexion.
Características:
- Algoritmo: AES-256-GCM (authenticated encryption)
- IV: 12 bytes aleatorios por cada cifrado (único, no reutilizable)
- Tag: 16 bytes de autenticación (detecta manipulación)
- Formato de salida: base64( IV ‖ TAG ‖ CIPHERTEXT )
- Clave: 32 bytes leídos de la variable de entorno MASTER_KEY (base64)
Tags
Table of Contents
Constants
Methods
- decrypt() : string
- Descifra una cadena previamente cifrada con encrypt().
- encrypt() : string
- Cifra un texto plano y devuelve la cadena lista para guardar en BD.
- loadKey() : string
- Carga la MASTER_KEY desde el entorno y la valida.
Constants
CIPHER
private
mixed
CIPHER
= 'aes-256-gcm'
IV_LEN
private
mixed
IV_LEN
= 12
KEY_LEN
private
mixed
KEY_LEN
= 32
TAG_LEN
private
mixed
TAG_LEN
= 16
Methods
decrypt()
Descifra una cadena previamente cifrada con encrypt().
public
static decrypt(string $payload) : string
Parameters
- $payload : string
-
El string base64 producido por encrypt().
Tags
Return values
string —Texto plano original.
encrypt()
Cifra un texto plano y devuelve la cadena lista para guardar en BD.
public
static encrypt(string $plaintext) : string
Parameters
- $plaintext : string
-
Cualquier string UTF-8.
Tags
Return values
string —base64( IV ‖ TAG ‖ CIPHERTEXT )
loadKey()
Carga la MASTER_KEY desde el entorno y la valida.
private
static loadKey() : string
No la cachea para evitar que un cambio en el .env requiera reiniciar.