100% CLIENT-SIDE
SIN BACKEND
WEB CRYPTO API
API simplificada para generar contraseñas seguras
SafeKey Generator no usa una API REST para crear contraseñas. Toda la lógica corre en el navegador del usuario para mayor privacidad. Esta guía resume el flujo en pocos pasos.
Entrada
Longitud y tipos de caracteres (A-Z, a-z, 0-9, simbolos).
Motor
window.crypto.getRandomValues() para entropia criptografica real.
Salida
Password fuerte generada localmente, sin enviar datos al servidor.
Implementacion minima (3 pasos)
- Construir el set de caracteres permitido.
- Tomar bytes aleatorios seguros con Web Crypto.
- Mapear cada byte a un caracter y mezclar el resultado.
function generatePassword(length = 16, options = {}) {
const sets = {
lower: "abcdefghijklmnopqrstuvwxyz",
upper: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
numbers: "0123456789",
symbols: "!@#$%^&*()-_=+[]{};:,.?/"
};
const use = {
lower: options.lower !== false,
upper: options.upper !== false,
numbers: options.numbers !== false,
symbols: "!@#$%^&*()-_=+[]{};:,.?/"
};
let charset = "";
for (const key of Object.keys(use)) {
if (use[key]) charset += sets[key];
}
if (!charset) throw new Error("Selecciona al menos un tipo de caracter");
const bytes = new Uint32Array(length);
window.crypto.getRandomValues(bytes);
let out = "";
for (let i = 0; i < length; i += 1) {
out += charset[bytes[i] % charset.length];
}
return out;
}
Buenas practicas recomendadas
- Usar 16+ caracteres para cuentas criticas.
- Combinar mayusculas, minusculas, numeros y simbolos.
- No reutilizar passwords en diferentes servicios.
- Guardar passwords en un gestor de contraseñas.
FAQ rapida
La API guarda las contraseñas?
No. La generacion ocurre localmente en el navegador.
Hay endpoint publico para integrar desde backend?
No actualmente. El modelo de seguridad prioriza ejecucion client-side.
Math.random() sirve para seguridad?
No. Para seguridad se debe usar window.crypto.getRandomValues().