Documentación de Proyecto Sincro

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
note

IMPORTANTE: Si la MASTER_KEY se pierde, todos los datos cifrados con ella son irrecuperables. Si se cambia, hay que reencriptar todo el contenido existente con la clave anterior antes de descartarla.

Table of Contents

Constants

CIPHER  = 'aes-256-gcm'
IV_LEN  = 12
KEY_LEN  = 32
TAG_LEN  = 16

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
throws
RuntimeException

si la cadena es corta, la clave incorrecta o el tag de autenticación no valida.

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
throws
RuntimeException

si la clave es inválida o el cifrado falla.

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.

Return values
string

        
On this page

Search results