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;
}