🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

cryptix

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cryptix

Libreria para encriptar y desencriptar datos

npmnpm
Version
1.0.0
Version published
Weekly downloads
6
-40%
Maintainers
1
Weekly downloads
 
Created
Source

Classes

AsimetricUtils

La clase AsimetricUtils proporciona métodos para trabajar con encriptación y desencriptación usando criptografía asimétrica, específicamente con el algoritmo RSA. Incluye funcionalidades para generar pares de claves (pública y privada), guardar y cargar claves desde archivos, y encriptar/desencriptar datos.

EncryptFile

Clase encargada de cifrar archivos utilizando una clave secreta fija y una clave aleatoria generada dinámicamente para cada archivo. Aplica técnicas de ofuscación para aumentar la seguridad.

HashingUtils

Clase segura para hashing con PBKDF2, SHA-512, SHA-256, salt aleatorio y un pepper secreto.

KeyGenerator

Clase KeyGenerator que proporciona métodos para generar claves seguras a partir de contraseñas y sal (salt), utilizando algoritmos criptográficos robustos.

SecurityUtils

Clase SecurityUtils con funciones avanzadas de seguridad, incluyendo generación y verificación de HMAC con SHA-512, claves seguras y más.

Functions

init(encFilePath)

Inicializa la clase cargando y desencriptando el contenido del archivo cifrado.

parseDecryptedContent()

Parsea el contenido desencriptado y lo almacena en un mapa clave-valor.

decrypt(encryptedText, password)string

Desencripta un texto cifrado con AES-GCM usando una clave derivada con PBKDF2.

getKey(keyName)string

Obtiene el valor de una clave como String.

extractEncryptedKey(content)string | null

Extrae la clave cifrada desde el contenido del archivo.

extractEncryptedData(content)string | null

Extrae los datos cifrados desde el contenido del archivo.

AsimetricUtils

La clase AsimetricUtils proporciona métodos para trabajar con encriptación y desencriptación usando criptografía asimétrica, específicamente con el algoritmo RSA. Incluye funcionalidades para generar pares de claves (pública y privada), guardar y cargar claves desde archivos, y encriptar/desencriptar datos.

Kind: global class

AsimetricUtils.generateRSAKeyPair(keySize) ⇒ Object

Genera un par de claves públicas y privadas usando el algoritmo RSA.

Kind: static method of AsimetricUtils
Returns: Object - Un objeto que contiene la clave pública y la clave privada.
Throws:

  • Error Si el algoritmo RSA no está disponible en el entorno.
ParamTypeDescription
keySizenumberEl tamaño de la clave en bits. Generalmente, 2048 bits es adecuado para RSA.

AsimetricUtils.savePublicKey(publicKey, filePath)

Guarda una clave pública en un archivo.

Kind: static method of AsimetricUtils
Throws:

  • Error Si ocurre un error al escribir en el archivo.
ParamTypeDescription
publicKeyBufferLa clave pública que se quiere guardar.
filePathstringLa ruta del archivo donde se guardará la clave.

AsimetricUtils.loadPublicKey(filePath) ⇒ Buffer

Carga una clave pública desde un archivo.

Kind: static method of AsimetricUtils
Returns: Buffer - La clave pública leída desde el archivo.
Throws:

  • Error Si ocurre un error al leer el archivo.
ParamTypeDescription
filePathstringLa ruta del archivo donde se encuentra la clave pública.

AsimetricUtils.savePrivateKey(privateKey, filePath)

Guarda una clave privada en un archivo.

Kind: static method of AsimetricUtils
Throws:

  • Error Si ocurre un error al escribir en el archivo.
ParamTypeDescription
privateKeyBufferLa clave privada que se quiere guardar.
filePathstringLa ruta del archivo donde se guardará la clave.

AsimetricUtils.loadPrivateKey(filePath) ⇒ Buffer

Carga una clave privada desde un archivo.

Kind: static method of AsimetricUtils
Returns: Buffer - La clave privada leída desde el archivo.
Throws:

  • Error Si ocurre un error al leer el archivo.
ParamTypeDescription
filePathstringLa ruta del archivo donde se encuentra la clave privada.

AsimetricUtils.encryptWithPublicKey(data, publicKey) ⇒ Buffer

Encripta un mensaje utilizando la clave pública (RSA).

Kind: static method of AsimetricUtils
Returns: Buffer - El mensaje encriptado como un Buffer.
Throws:

  • Error Si ocurre un error durante la encriptación.
ParamTypeDescription
datastringEl mensaje que se desea encriptar (en texto plano).
publicKeyBufferLa clave pública utilizada para encriptar el mensaje.

AsimetricUtils.decryptWithPrivateKey(encryptedData, privateKey) ⇒ string

Desencripta un mensaje utilizando la clave privada (RSA).

Kind: static method of AsimetricUtils
Returns: string - El mensaje desencriptado en texto plano.
Throws:

  • Error Si ocurre un error durante la desencriptación.
ParamTypeDescription
encryptedDataBufferLos datos encriptados que se desean desencriptar.
privateKeyBufferLa clave privada utilizada para desencriptar el mensaje.

EncryptFile

Clase encargada de cifrar archivos utilizando una clave secreta fija y una clave aleatoria generada dinámicamente para cada archivo. Aplica técnicas de ofuscación para aumentar la seguridad.

Kind: global class

encryptFile.FIXED_SECRET

Clave secreta fija utilizada para cifrar la clave aleatoria del archivo. Esta clave debe mantenerse segura y nunca exponerse públicamente.

Kind: instance property of EncryptFile

EncryptFile.encryptFile(inputDecPath, outputEncPath)

Cifra un archivo de texto plano y lo guarda en una nueva ubicación con formato ofuscado.

Kind: static method of EncryptFile
Throws:

  • Error En caso de error al leer/escribir archivos o durante el proceso de cifrado.
ParamTypeDescription
inputDecPathstringRuta del archivo de entrada en texto plano (sin cifrar).
outputEncPathstringRuta del archivo de salida cifrado.

HashingUtils

Clase segura para hashing con PBKDF2, SHA-512, SHA-256, salt aleatorio y un pepper secreto.

Kind: global class

HashingUtils.generateSecureHashSHA512(input) ⇒ string

Genera un hash seguro usando PBKDF2 con HMAC-SHA-512, salt aleatorio y un pepper secreto.

Kind: static method of HashingUtils
Returns: string - Cadena en formato Base64 con el salt y el hash concatenados y separados por '$'.

ParamTypeDescription
inputstringEl texto plano que se va a hashear.

HashingUtils.generateSecureHashSHA256(input) ⇒ string

Genera un hash seguro usando PBKDF2 con HMAC-SHA-256, salt aleatorio y un pepper secreto.

Kind: static method of HashingUtils
Returns: string - Cadena en formato Base64 con el salt y el hash concatenados y separados por '$'.

ParamTypeDescription
inputstringEl texto plano que se va a hashear.

HashingUtils.verifyHashSHA512(input, storedHashWithSalt) ⇒ boolean

Verifica si un hash corresponde al texto plano dado usando SHA-512.

Kind: static method of HashingUtils
Returns: boolean - true si el hash generado coincide con el almacenado; de lo contrario, false.

ParamTypeDescription
inputstringEl texto plano a verificar.
storedHashWithSaltstringEl hash almacenado (salt$hash en Base64).

HashingUtils.verifyHashSHA256(input, storedHashWithSalt) ⇒ boolean

Verifica si un hash corresponde al texto plano dado usando SHA-256.

Kind: static method of HashingUtils
Returns: boolean - true si el hash generado coincide con el almacenado; de lo contrario, false.

ParamTypeDescription
inputstringEl texto plano a verificar.
storedHashWithSaltstringEl hash almacenado (salt$hash en Base64).

HashingUtils.deriveKey(input, salt, useSHA512) ⇒ Buffer

Deriva una clave usando PBKDF2 con HMAC-SHA-512 o HMAC-SHA-256 y un pepper.

Kind: static method of HashingUtils
Returns: Buffer - Array de bytes con el hash derivado.

ParamTypeDescription
inputstringTexto plano a convertir en hash.
saltBufferSalt aleatorio utilizado en el hashing.
useSHA512booleanSi es verdadero, usa SHA-512, de lo contrario usa SHA-256.

HashingUtils.encodeBase64(data) ⇒ string

Convierte un array de bytes en una cadena Base64.

Kind: static method of HashingUtils
Returns: string - Cadena codificada en Base64.

ParamTypeDescription
dataBufferDatos en bytes.

HashingUtils.decodeBase64(base64) ⇒ Buffer

Decodifica una cadena Base64 en un array de bytes.

Kind: static method of HashingUtils
Returns: Buffer - Array de bytes decodificado.

ParamTypeDescription
base64stringCadena en Base64.

HashingUtils.generateSalt() ⇒ Buffer

Genera un salt aleatorio de longitud fija.

Kind: static method of HashingUtils
Returns: Buffer - Un buffer con un salt aleatorio.

KeyGenerator

Clase KeyGenerator que proporciona métodos para generar claves seguras a partir de contraseñas y sal (salt), utilizando algoritmos criptográficos robustos.

Kind: global class

KeyGenerator.generateKey(password, salt) ⇒ Buffer

Genera una clave secreta AES a partir de una contraseña y un salt utilizando PBKDF2. Este proceso deriva una clave segura a partir de una contraseña utilizando el salt y el algoritmo PBKDF2.

Kind: static method of KeyGenerator
Returns: Buffer - La clave generada para AES.

ParamTypeDescription
passwordstringLa contraseña que se utilizará para generar la clave.
saltBufferEl salt aleatorio utilizado para derivar la clave.

KeyGenerator.generateSalt() ⇒ Buffer

Genera un salt aleatorio de longitud fija utilizando crypto.randomBytes. El salt se utiliza para diversificar los resultados de la función de derivación de claves.

Kind: static method of KeyGenerator
Returns: Buffer - Un buffer con un salt aleatorio.

KeyGenerator.generateSecurePassword(length) ⇒ string

Genera una contraseña segura de la longitud especificada.

Este método utiliza un generador de números aleatorios criptográficamente seguro ([crypto.randomBytes](crypto.randomBytes)) para crear una contraseña aleatoria con caracteres alfanuméricos y especiales. La contraseña generada es adecuada para su uso en autenticación y almacenamiento seguro.

Kind: static method of KeyGenerator
Returns: string - Una contraseña segura generada aleatoriamente.
Throws:

  • Error Si la longitud especificada es menor o igual a 0.
ParamTypeDescription
lengthnumberLa longitud de la contraseña generada. Debe ser un número positivo mayor a 0.

SecurityUtils

Clase SecurityUtils con funciones avanzadas de seguridad, incluyendo generación y verificación de HMAC con SHA-512, claves seguras y más.

Kind: global class

SecurityUtils.generateHMAC(message, secretKey) ⇒ string

Genera un HMAC (Hashed Message Authentication Code) utilizando SHA-512 con una clave secreta segura.

Kind: static method of SecurityUtils
Returns: string - El HMAC generado en formato Base64.

ParamTypeDescription
messagestringEl mensaje que se va a autenticar.
secretKeystringLa clave secreta utilizada para generar el HMAC.

SecurityUtils.verifyHMAC(message, secretKey, receivedHMAC) ⇒ boolean

Verifica si un HMAC es válido comparándolo con un mensaje dado.

Kind: static method of SecurityUtils
Returns: boolean - {@code true} si el HMAC es válido, {@code false} en caso contrario.

ParamTypeDescription
messagestringEl mensaje original.
secretKeystringLa clave secreta utilizada para generar el HMAC.
receivedHMACstringEl HMAC recibido.

SecurityUtils.generateSecureKey(password, salt) ⇒ string

Genera una clave secreta segura utilizando PBKDF2 con HMAC-SHA-512.

Kind: static method of SecurityUtils
Returns: string - Una clave secreta segura en formato Base64.

ParamTypeDescription
passwordstringLa contraseña base para derivar la clave.
saltBufferUn valor aleatorio para fortalecer la clave.

SecurityUtils.generateRandomKey() ⇒ string

Genera una clave secreta aleatoria segura.

Kind: static method of SecurityUtils
Returns: string - Una clave secreta en formato Base64.

SecurityUtils.generateSalt() ⇒ Buffer

Genera un salt aleatorio seguro.

Kind: static method of SecurityUtils
Returns: Buffer - Un salt aleatorio en bytes.

init(encFilePath)

Inicializa la clase cargando y desencriptando el contenido del archivo cifrado.

Kind: global function
Throws:

  • Error Si ocurre un error al leer o desencriptar el archivo
ParamTypeDescription
encFilePathstringRuta del archivo .enc

parseDecryptedContent()

Parsea el contenido desencriptado y lo almacena en un mapa clave-valor.

Kind: global function

decrypt(encryptedText, password) ⇒ string

Desencripta un texto cifrado con AES-GCM usando una clave derivada con PBKDF2.

Kind: global function
Returns: string - Texto desencriptado.

ParamTypeDescription
encryptedTextstringTexto cifrado en Base64.
passwordstringContraseña para derivar la clave.

getKey(keyName) ⇒ string

Obtiene el valor de una clave como String.

Kind: global function
Returns: string - Valor asociado o null si no existe

ParamTypeDescription
keyNamestringNombre de la clave

extractEncryptedKey(content) ⇒ string | null

Extrae la clave cifrada desde el contenido del archivo.

Kind: global function
Returns: string | null - La clave cifrada en Base64

ParamTypeDescription
contentstringContenido del archivo cifrado

extractEncryptedData(content) ⇒ string | null

Extrae los datos cifrados desde el contenido del archivo.

Kind: global function
Returns: string | null - Los datos cifrados en Base64

ParamTypeDescription
contentstringContenido del archivo cifrado

FAQs

Package last updated on 13 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts