Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Seguridad y Calidad

Argon2 Password Hashing

Usa Argon2, ganador de la Competencia de Hashing de Contraseñas, para seguridad de contraseñas de última generación en Node.js.

Claude Code Cursor Copilot Windsurf Gemini CLI

Descripción General

Argon2 es el ganador de la Competencia de Hashing de Contraseñas de 2015 y es recomendado por OWASP como el algoritmo preferido de hashing de contraseñas. La biblioteca node-argon2 proporciona enlaces Node.js para la implementación de referencia en C, ofreciendo tres variantes: Argon2d (resistente a GPU), Argon2i (resistente a canales laterales) y Argon2id (híbrido, recomendado).

A diferencia de bcrypt, Argon2 permite ajustar el uso de memoria, paralelismo y costo de tiempo de forma independiente. Este diseño de memoria intensiva lo hace significativamente más resistente a ataques de cracking basados en GPU y ASIC. La variante predeterminada Argon2id combina las fortalezas de Argon2d y Argon2i, proporcionando resistencia contra ataques de canales laterales y GPU.

La biblioteca node-argon2 proporciona una API asíncrona simple con valores predeterminados sensatos siguiendo las recomendaciones de OWASP. Genera automáticamente sales criptográficamente seguras, codifica parámetros en formato de cadena PHC y soporta verificación de hashes creados con diferentes parámetros. Esto facilita la actualización de parámetros de seguridad con el tiempo sin invalidar hashes de contraseñas existentes.

¿Para Quién Es?

  • Hashear contraseñas con algoritmo Argon2id de memoria intensiva
  • Actualizar de bcrypt a Argon2 para mayor seguridad
  • Configurar costo de memoria y tiempo para hardware específico
  • Verificar contraseñas con detección automática de parámetros

Instalación

Configurar Claude Code
npm install argon2

Configuración

import argon2 from "argon2"

// Hash with Argon2id (default, recommended)
const hash = await argon2.hash(password, {
  type: argon2.argon2id,
  memoryCost: 65536, // 64 MB
  timeCost: 3,
  parallelism: 4,
})

// Verify
const isValid = await argon2.verify(hash, password)