Generador de contrasenas/ Aleatorio seguro
Genera contrasenas aleatorias fuertes al instante. Personaliza longitud, tipos de caracteres y generacion masiva. Usa la API Web Crypto — nada sale de tu navegador.
Las contraseñas se generan localmente en tu navegador y nunca se envían a un servidor
:kmjc>.R/+5xghuIDL.)qjN[vrBl/RN*t-z]Yv$L[1>63P8^0w&f1eeL[]JX5,QyQe(MaNL0Y#K~X>g+¿Esta herramienta resolvió tu problema?
¿Qué hace una contraseña fuerte
Las contraseñas fuertes通常 cumplen estos criterios: al menos 12 caracteres (16+推荐),包含 mayúsculas, minuscules, números y símbolos especiales, evitando palabras del diccionario o información personal, y diferentes para每个 sitio. La强度 de la contraseña está高度 correlacionada con la longitud — una contraseña随机 de 16 caracteres es más difícil de暴力破解 que una contraseña复杂 de 8 caracteres. Las últimas directrices NIST推荐 priorizar la longitud sobre la复杂idad.
Por qué no deberías crear contraseñas tú mismo
Los humanos tienden a使用 patrones predecibles: nombre + cumpleaños + símbolos, secuencias de teclado (qwerty, 123456), variaciones de palabras comunes. Estos patrones ya están收录 en los diccionarios de contraseñas de los atacantes y pueden ser破解ados en segundos. Las contraseñas generadas随机amente no tienen patrones y tardarían siglos en暴力破解se. Usar un generador de contraseñas con un gestor de contraseñas (1Password, Bitwarden等) es la mejor práctica.
¿Es seguro este generador de contraseñas
Nuestra herramienta使用 el Web Crypto API内장 del navegador (crypto.getRandomValues), un generador de números pseudo-aleatorios暗号学icamente seguro (CSPRNG). Todo el proceso de generación ocurre完全 en el navegador — las contraseñas nunca se上传an a ningún servidor, no hay传输 de red,因此 no hay riesgo de泄露. Puedes usarlo fuera de línea con seguridad.
Ejemplos de codigo
function generatePassword(len, charset) {
const arr = new Uint32Array(len);
crypto.getRandomValues(arr);
return Array.from(arr, (v) =>
charset[v % charset.length]
).join("");
}
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";
const pw = generatePassword(16, chars);
// e.g. "xK9#mP2&vL5$nQ7@"import secrets
import string
def generate_password(length=16):
chars = (
string.ascii_letters
+ string.digits
+ string.punctuation
)
return "".join(
secrets.choice(chars)
for _ in range(length)
)
pw = generate_password(16)
# Uses OS-level CSPRNGfunction securePassword(
length: number,
options = {
upper: true, lower: true,
digits: true, symbols: true,
}
): string {
let pool = "";
if (options.upper) pool += "A-Z";
if (options.lower) pool += "a-z";
if (options.digits) pool += "0-9";
if (options.symbols) pool += "!@#$%^&*";
const buf = new Uint32Array(length);
crypto.getRandomValues(buf);
return [...buf].map(v =>
pool[v % pool.length]).join("");
}import (
"crypto/rand"
"math/big"
)
func GeneratePassword(
length int, charset string,
) (string, error) {
result := make([]byte, length)
max := big.NewInt(int64(len(charset)))
for i := range result {
n, err := rand.Int(rand.Reader, max)
if err != nil {
return "", err
}
result[i] = charset[n.Int64()]
}
return string(result), nil
}