Gerenciador de senhas que pode ser feito apenas com .bashrc [Estranho]
Olá, sou um incompetente.
Vou apresentar um gerenciador de senhas estranho.
.bashrc
Tenho o seguinte no meu .bashrc.
A propósito, como está codificado com base91, é obrigatório instalar o 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"
}
Em outras palavras, para a parte de geração, consulte o seguinte:
Quero uma senha segura com base91. - SOULMINIGRIG
É um gerenciador de senhas realmente simples.
No entanto, quando há muitos destinos SSH, é difícil incluir caracteres especiais de forma tão simples, então fiz assim.
Você já se viu na situação de conseguir lembrar senhas curtas para sites, mas não senhas longas?
Com isso, você pode gerar senhas relativamente fortes com strings curtas, e como os arquivos que são completamente binários a partir de hexadecimais são codificados, a própria senha não é armazenada em texto simples.
Fica assim
Fica assim.
$ pp2091g string file
Generated and saved to /home/haturatu/.pp2091g/file
$ pp2091g string file
_+f2t2X9JyLf?S(GplK~
Quando caracteres especiais não são suportados
Se os caracteres especiais não forem suportados pela codificação base91, use uma string longa codificada em base64.
Isso é necessário porque muitos sites japoneses não suportam todos os caracteres especiais.
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"
}
Desvantagens
Um arquivo salvo pode ser exibido por qualquer 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
Isso ocorre porque o binário é simplesmente cateado e codificado diretamente aqui.
Além disso, se as strings forem as mesmas, a senha será a mesma.
Vantagens
É fácil de gerenciar. Como é baseado em arquivo, pode ser usado diretamente em outro servidor, se necessário.
Também é fácil de gerar. Mesmo que você perca o arquivo, se lembrar do nome do arquivo e da string, poderá recuperá-lo.
O objetivo deste gerenciador de senhas é apenas a vontade de depender o mínimo possível de fontes externas e ter uma segurança relativamente boa, mesmo que você só consiga lembrar senhas curtas.
Pode ser forte contra ataques de força bruta, mas é perigoso se o shell for comprometido. No entanto, se apenas a senha for obtida sem saber o endereço de e-mail/número de telefone básico e onde ela é usada, não há muito sentido.
Além disso, como é um script shell simples, é fácil de personalizar. Pode ser que sha256sum seja melhor que sha384sum, e você pode escolher a codificação de caracteres e o comprimento da string como quiser.
Até a próxima. Obrigado.