"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Lithe Crypt: simplificación de la criptografía en aplicaciones PHP

Lithe Crypt: simplificación de la criptografía en aplicaciones PHP

Publicado el 2024-11-10
Navegar:147

Lithe Crypt: Simplificando a Criptografia em Aplicações PHP

Lithe Crypt es una sencilla utilidad de cifrado y descifrado en PHP, diseñada para funcionar con el marco Lithe. Utiliza el algoritmo AES-256-CBC para el manejo seguro de datos.

Instalación

Para instalar el paquete Lithe Crypt, puedes usar Composer. Si aún no lo tienes instalado, asegúrate de que Composer esté disponible en tu sistema. Luego ejecute el siguiente comando en el directorio de su proyecto:

composer require lithemod/crypt

Requisitos

  • PHP 8 o superior
  • Extensión OpenSSL habilitada en su instalación PHP

Usar

Cargando variables de entorno

Antes de usar la clase Crypt, necesitas cargar tus variables de entorno. Utilice el siguiente código para cargar su archivo .env:

use Lithe\Support\Env;

// Carregar variáveis de ambiente
Env::load(__DIR__); // Ajuste o caminho conforme necessário

Configuración de APP_KEY

Asegúrese de que la variable de entorno APP_KEY esté configurada. Esta clave debe ser una cadena codificada en base64 de 32 bytes. Puedes configurarlo en tu archivo .env o directamente en el entorno del servidor.

Ejemplo de una clave base64 válida:

YXNkZmFnc2Rhc2RmYWdlcyBhc2RmYWdlcyBhYXNkZmFnc2Q=

Cifrar datos

Para cifrar datos, utilice el método de cifrado de la clase Crypt. También puede especificar si desea utilizar un IV fijo (vector de inicialización) para el cifrado:

use Lithe\Support\Security\Crypt;

$data = "dados sensíveis";

// Criptografar sem IV fixo
$encrypted = Crypt::encrypt($data);
echo "Dados Criptografados: " . $encrypted;

// Criptografar com IV fixo (útil para valores únicos como e-mails)
$encryptedWithSameIV = Crypt::encrypt($data, true);
echo "Dados Criptografados com IV Fixo: " . $encryptedWithSameIV;

Descifrando datos

Para descifrar datos previamente cifrados, utilice el método de descifrado. Debe especificar los mismos parámetros utilizados durante el cifrado para garantizar un descifrado correcto:

use Lithe\Support\Security\Crypt;

// Descriptografar sem IV fixo
$decrypted = Crypt::decrypt($encrypted);
echo "Dados Descriptografados: " . $decrypted;

// Descriptografar com IV fixo
$decryptedWithSameIV = Crypt::decrypt($encryptedWithSameIV, true, $data);
echo "Dados Descriptografados com IV Fixo: " . $decryptedWithSameIV;

Manejo de excepciones

Si APP_KEY no está definida o no es válida, la clase Crypt generará una CryptException. Es esencial manejar esta excepción en tu código para evitar errores inesperados:

use Lithe\Exceptions\Encryption\CryptException;

try {
    $encrypted = Crypt::encrypt($data);
    // Descriptografar sem IV fixo
    $decrypted = Crypt::decrypt($encrypted);
} catch (CryptException $e) {
    echo "Erro de Criptografia: " . $e->getMessage();
}

Consideraciones finales

Lithe Crypt ofrece una forma práctica y segura de manejar el cifrado y descifrado de datos en sus aplicaciones PHP. Con la implementación del algoritmo AES-256-CBC y la facilidad de integración con el marco Lithe, puede proteger sus datos de manera efectiva. ¡Pruébelo y vea cómo puede mejorar la seguridad de su aplicación!

Si tienes alguna pregunta o sugerencia, ¡no dudes en comentar a continuación!

Declaración de liberación Este artículo se reproduce en: https://dev.to/lithephp/lithe-crypt-simplificando-a-criptografia-em-aplicacoes-php-27jj?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3