AuthManager.Tools.CryptoTools (auth_manager_core v0.1.1)
Utilidades para operaciones criptográficas.
Summary
Functions
Decodifica y descifra datos que fueron cifrados y codificados con encrypt_and_encode/3.
Descifra datos cifrados con AES en modo GCM.
Deriva una clave a partir de una contraseña utilizando PBKDF2.
Cifra un string utilizando AES en modo GCM.
Cifra un string y lo codifica en base64 para almacenamiento o transmisión.
Genera un token aleatorio de una longitud específica.
Genera un hash seguro de una contraseña utilizando bcrypt.
Genera un hash HMAC utilizando SHA-256.
Genera un hash MD5 de los datos proporcionados. Nota: MD5 no debe usarse para seguridad, solo para checksums o identificadores no sensibles.
Genera un hash SHA-256 de los datos proporcionados.
Verifica si una contraseña coincide con un hash.
Functions
Decodifica y descifra datos que fueron cifrados y codificados con encrypt_and_encode/3.
Ejemplos
iex> CryptoTools.decode_and_decrypt(encrypted, key)
"datos secretos"
Descifra datos cifrados con AES en modo GCM.
Ejemplos
iex> CryptoTools.decrypt(encrypted, iv, tag, key)
"datos secretos"
Deriva una clave a partir de una contraseña utilizando PBKDF2.
Ejemplos
iex> salt = :crypto.strong_rand_bytes(16)
iex> CryptoTools.derive_key("mypassword", salt, 10000, 32)
<<...>>
Cifra un string utilizando AES en modo GCM.
Ejemplos
iex> key = :crypto.strong_rand_bytes(32)
iex> {encrypted, iv, tag} = CryptoTools.encrypt("datos secretos", key)
Cifra un string y lo codifica en base64 para almacenamiento o transmisión.
Ejemplos
iex> key = :crypto.strong_rand_bytes(32)
iex> encrypted = CryptoTools.encrypt_and_encode("datos secretos", key)
Genera un token aleatorio de una longitud específica.
Ejemplos
iex> CryptoTools.generate_token(16)
"f3d8e1c5a9b7..."
Genera un hash seguro de una contraseña utilizando bcrypt.
Ejemplos
iex> CryptoTools.hash_password("secretpassword")
"$2b$12$..."
Genera un hash HMAC utilizando SHA-256.
Ejemplos
iex> CryptoTools.hmac("datos", "secreto")
"..."
Genera un hash MD5 de los datos proporcionados. Nota: MD5 no debe usarse para seguridad, solo para checksums o identificadores no sensibles.
Ejemplos
iex> CryptoTools.md5("hello world")
"5eb63bbbe01eeed093cb22bb8f5acdc3"
Genera un hash SHA-256 de los datos proporcionados.
Ejemplos
iex> CryptoTools.sha256("hello world")
"b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
Verifica si una contraseña coincide con un hash.
Ejemplos
iex> CryptoTools.verify_password("secretpassword", "$2b$12$...")
true