jf / crypto
Cifrado y descifrado de textos y archivos
1.0.0
2024-03-02 18:18 UTC
Suggests
- jf/base: Para cifrar identificadores de entidades o recursos
README
Cifrado y descifrado de textos y archivos.
Instalación
Composer
Este proyecto usa como gestor de dependencias Composer el cual puede ser instalado siguiendo las instrucciones especificadas en la documentación oficial del proyecto.
Para instalar el paquete jf/crypto
usando este manejador de paquetes se debe ejecutar:
composer require jf/crypto
Control de versiones
Este proyecto puede ser instalado usando git
. Primero se debe clonar el proyecto y luego instalar las dependencias:
git clone git@gitlab.com:joaquinfq/jfCrypto.git
cd jfCrypto
composer install
Archivos disponibles
Clases
Nombre | Descripción |
---|---|
jf\Crypto\ACipher | Clase para cifrar de manera simple archivos usados como base de datos o configuración. |
jf\Crypto\Assert | Excepción lanzada por el paquete. |
jf\Crypto\AsymmetricKeys | Gestiona las necesidades el cifrado y descifrado usando claves asimétricas. |
jf\Crypto\Cipher | Clase para cifrar de manera simple textos o datos. |
jf\Crypto\FileCipher | Clase para cifrar de manera simple archivos usados como base de datos o configuración. |
Interfaces
Nombre | Descripción |
---|---|
jf\Crypto\IAsymmetricKeys | Interfaz para las clases que gestionan claves criptográficas asimétricas. |
jf\Crypto\ICipher | Interfaz para cifrar/descifrar textos. |
jf\Crypto\ICrypto | Interfaz para las clases que gestionan claves criptográficas. |
jf\Crypto\ICryptoId | Interfaz para las clases que requieren cifrar su identificador. |
jf\Crypto\IFileCipher | Interfaz para cifrar/descifrar archivos. |
Traits
Nombre | Descripción |
---|---|
jf\Crypto\TId | Trait para aplicar a los objetos que necesitan cifrar su identificador numérico. |
Ejemplos
jf\Crypto\AssymetricKeys
// Si no tenemos las claves las creamos
// AsymmetricKeys::createKeys(__DIR__);
// Al crear la clase especificamos el directorio donde se encuentran las claves.
$ecdsa = new AsymmetricKeys(__DIR__);
$content = file_get_contents(__FILE__);
$encrypted = $ecdsa->encrypt($content);
assert($ecdsa->decrypt($encrypted) === $content);
jf\Crypto\FileCipher
$content = file_get_contents(__FILE__);
$key = md5($content); // Asignamos la clave que queremos usar.
$cipher = new Cipher($key);
$filecipher = new FileCipher($key);
$encrypted = $cipher->encrypt($content);
$encfile = __FILE__ . '.encrypted';
assert($cipher->decrypt($encrypted) === $content);
assert($filecipher->save($encfile, $content) === strlen($encrypted));
assert($filecipher->load($encfile) === $content);
unlink($encfile);