【Asqueroso】 Un gestor de contraseñas que se puede hacer solo con .bashrc
Hola, soy un inútil.
Presento un asqueroso gestor de contraseñas.
.bashrc
He escrito lo siguiente en mi .bashrc.
Por cierto, como está codificado con base91, es obligatorio instalar base91.
pp2091g() {
local dir="$HOME/.$FUNCNAME"
if [[ -z "$1" || -z "$2" ]]; then
echo "Usage: $FUNCNAME <string> <filename>"
return 1
fi
if [[ ! -d $dir ]]; then
mkdir -p $dir
fi
if [[ -f $dir/$2 ]]; then
cat $dir/$2 | base91 | cut -c -20 | tr -d "\n" ; echo
return 0
fi
echo -n "$1" | sha384sum | awk '{print $1}' | xxd -r -p > $dir/$2
echo "Generated and saved to $dir/$2"
}
En otras palabras, para la parte de generación, consulte lo siguiente:
Quiero una contraseña segura con base91. - SOULMINIGRIG
Es un gestor de contraseñas realmente simple.
Sin embargo, si hay muchos destinos SSH, es difícil incluir caracteres especiales de esta manera tan simple, por eso lo he hecho así.
¿No te pasa que puedes recordar contraseñas cortas para sitios web, pero las largas son imposibles?
Por lo tanto, al usar esto, se pueden generar contraseñas relativamente fuertes con cadenas cortas, y como se codifica un archivo que ha sido completamente binario a partir de hexadecimal, la contraseña en sí no se guarda en texto plano.
Así es como se ve
Así es como se ve.
$ pp2091g string file
Generated and saved to /home/haturatu/.pp2091g/file
$ pp2091g string file
_+f2t2X9JyLf?S(GplK~
Cuando los caracteres especiales no son compatibles
Si los caracteres especiales no son compatibles con la codificación base91, se utiliza una cadena larga codificada en base64.
Es necesario porque muchos sitios japoneses no admiten todos los caracteres especiales.
pp6464g() {
local dir="$HOME/.$FUNCNAME"
if [[ -z "$1" || -z "$2" ]]; then
echo "Usage: $FUNCNAME <string> <filename>"
return 1
fi
if [[ ! -d $dir ]]; then
mkdir -p $dir
fi
if [[ -f $dir/$2 ]]; then
cat $dir/$2 | base64 | tr -d "\n" ; echo
return 0
fi
echo -n "$1" | sha384sum | awk '{print $1}' | xxd -r -p > $dir/$2
echo "Generated and saved to $dir/$2"
}
Inconvenientes
Un archivo guardado una vez puede ser visualizado por cualquier strings.
$ pp2091g string file
_+f2t2X9JyLf?S(GplK~
$ pp2091g stringa file
_+f2t2X9JyLf?S(GplK~
Porque
if [[ -f $dir/$2 ]]; then
cat $dir/$2 | base64 | tr -d "\n" ; echo
return 0
fi
Es porque aquí simplemente se hace un cat del binario y se codifica tal cual.
Además, si se usa la misma strings, se obtendrá la misma contraseña.
Ventajas
Es fácil de gestionar. Como está basado en archivos, se puede usar directamente en otro servidor si es necesario.
También es fácil de generar. Incluso si se pierde el archivo, se puede recuperar si se recuerda el nombre del archivo y la strings.
El único propósito de este gestor de contraseñas es la sensación de querer ser lo más independiente posible de factores externos y tener contraseñas relativamente seguras, aunque solo se puedan recordar contraseñas cortas.
Puede ser resistente a los ataques de fuerza bruta, pero si el shell es comprometido, es vulnerable. Sin embargo, si solo se obtiene la contraseña sin saber la dirección de correo electrónico/número de teléfono y dónde se usa, no tiene mucho sentido.
Además, al ser un script de shell simple, es fácil de personalizar y modificar. Quizás sha256sum sea mejor que sha384sum, y también es fácil cambiar la codificación de caracteres y la longitud de la cadena a tu gusto.
Hasta la próxima. Saludos.