Para que nuestros datos estén seguros en redes sociales, cuentas de bancos y demás sitios web, necesitamos generar una contraseña fuerte. Pensemos que la contraseña es la primera capa de defensa ante un atacante (ciberdelincuente).
Una contraseña fuerte tiene que tener distintas combinaciones y de una longitud de 8 caracteres o más.
Puede estar compuesta por:
- Mayúsculas
- Minúsculas
- Símbolos
- Letras
Hice una pequeña herramienta básica en Rust para poder realizar la explicación y mostrar ejemplos, de cómo debe ser una contraseña segura y de cómo no debe ser.
Contraseñas solamente de números, letras o símbolos, son relativamente débiles y fáciles de descubrir.
fn numbers() -> String {
let number: Vec<char> = "123456789".chars().collect();
let random: String = (0..LENGTH).map(|_|{
*number.choose(&mut rand::thread_rng()).unwrap()
}
).collect();
random
}
Ejemplo: 14117833877145556291
fn letter() -> String {
let letters: Vec<char> = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz".chars().collect();
let random: String = (0..LENGTH).map(|_|{
*letters.choose(&mut rand::thread_rng()).unwrap()
}
).collect();
random
}
Ejemplo: nRTmaXWIbjQAtSHqPsQB
fn symbol() -> String {
let symbols: Vec<char> = "!@#$%^&*()_+-=[]{}|;':,./<>?".chars().collect();
let random: String = (0..LENGTH).map(|_|{
*symbols.choose(&mut rand::thread_rng()).unwrap()
}
).collect();
random
}
Ejemplo: #/?;$-&|@+:/}#';-({@
Este tipo de contraseña es la recomendada ,es una combinacion de letras,numeros y simbolos,es mucho mas fuerte que solo poner letras o numeros.
fn combination() -> String {
let password: Vec<char> = "!@#$%^&*()_+-=[]{}|;':,./<>?123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz".chars().collect();
let random: String = (0..LENGTH).map(|_|{
*password.choose(&mut rand::thread_rng()).unwrap()
}
).collect();
random
}
Ejemplo: G1}(FX2IocF[.'@zZnGp