administrador.base.orm.inicializacion.value_desencriptado.21.7.0 - gamboamartin/administrador GitHub Wiki

value_desencriptado

Esta función privada se encarga de desencriptar un valor si el campo especificado está entre los campos encriptados.

Signatura

private function value_desencriptado(string $campo, array $campos_encriptados, mixed $value): array|string|null

Parámetros

$campo (string): El nombre del campo del valor proporcionado. $campos_encriptados (array): Un arreglo que contiene los nombres de los campos que están encriptados.

Retorna

  • array|string|null: El valor desencriptado si el campo especificado está encriptado y la operación es exitosa. En caso de error, retorna un arreglo que contiene un mensaje de error. El formato del arreglo es el siguiente:
  • mensaje: El mensaje de error.
  • data: Los datos relevantes asociados al error.
  • es_final: Indica si el error es final y no se pueden realizar más operaciones.
  • fix: Sugerencia para corregir el error.

Explicación Detallada

  • Esta función verifica si el campo especificado es numérico. Si lo es, retorna un mensaje de error indicando que el campo debe ser un texto.
  • Asigna el valor proporcionado a la variable $value_enc.
  • Si el campo especificado está encriptado (se encuentra en el arreglo $campos_encriptados), desencripta el valor utilizando un objeto de la clase encriptador.
  • Retorna el valor desencriptado si la operación es exitosa. En caso de error durante la desencriptación, retorna un mensaje de error.

Ejemplos

// Creación de objeto
$objeto = new inicializacion();

// Definición de campos encriptados
$campos_encriptados = ['campo1', 'campo2'];

// Caso 1: Campo numérico proporcionado
$campo_numerico = 123;
$value = 'valor_encriptado';
$resultado = $objeto->value_desencriptado($campo_numerico, $campos_encriptados, $value);
/*
$resultado contendrá un arreglo con un mensaje de error indicando que el campo debe ser un texto
*/

// Caso 2: Campo encriptado proporcionado
$campo_encriptado = 'campo1';
$value_encriptado = 'QlArR1Bvd2FTL0hhRnBNQjNOeFp3Zz09';
$resultado = $objeto->value_desencriptado($campo_encriptado, $campos_encriptados, $value_encriptado);
// $resultado contendrá el valor desencriptado correctamente

// Caso 3: Campo no encriptado proporcionado
$campo_no_encriptado = 'campo3';
$value_no_encriptado = 'valor_no_encriptado';
$resultado = $objeto->value_desencriptado($campo_no_encriptado, $campos_encriptados, $value_no_encriptado);
// $resultado contendrá el valor no encriptado ya que el campo no está en la lista de campos encriptados

Código de la Función

private function value_desencriptado(string $campo, array $campos_encriptados, mixed $value): array|string|null
    {
        if(is_numeric($campo)){
            $fix = ' El campo debe ser un texto no numerico puede ser id, registro etc, no puede ser 0 o 1 o cualquier 
            numero';
            return $this->error->error(mensaje: 'Error el campo debe ser un texto', data: $campo,
                es_final: true, fix: $fix);
        }
        $value_enc = $value;

        if(in_array($campo, $campos_encriptados, true)){
            $value_enc = (new encriptador())->desencripta(valor: $value);
            if(errores::$error){
                return $this->error->error(mensaje: 'Error al desencriptar', data:$value_enc);
            }
        }
        return $value_enc;
    }