【Отвратительный】 Менеджер паролей, который можно сделать только с помощью .bashrc

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

Привет, я бездарь.
Представляю отвратительный менеджер паролей.

.bashrc

Я написал следующее в своем .bashrc.
Кстати, поскольку он закодирован с помощью base91, установка 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"
}

Что это значит? Пожалуйста, обратитесь к следующему для части генерации:
Мне нужен безопасный пароль с base91. - SOULMINIGRIG
Это действительно простой менеджер паролей.
Однако, если у вас много SSH-соединений, сложно вводить символы таким простым способом, поэтому я сделал это так.

Бывает ли так, что вы можете запомнить короткие пароли для веб-сайтов, но не можете запомнить длинные?
Поэтому, используя это, вы можете генерировать относительно надежные пароли из коротких строк, и поскольку файлы, полностью преобразованные из шестнадцатеричного кода в двоичный, кодируются, сам пароль не сохраняется в виде открытого текста.

Вот как это выглядит

Это будет выглядеть так.

$ pp2091g string file
Generated and saved to /home/haturatu/.pp2091g/file
$ pp2091g string file
_+f2t2X9JyLf?S(GplK~

Если символы не поддерживаются

Если символы не поддерживаются кодировкой base91, используйте длинную строку, закодированную в base64.
Это необходимо, потому что многие японские сайты не поддерживают все символы.

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"
}

Недостатки

Файл, сохраненный однажды, может быть отображен любыми strings.

$ pp2091g string file
_+f2t2X9JyLf?S(GplK~
$ pp2091g stringa file
_+f2t2X9JyLf?S(GplK~

Потому что

  if [[ -f $dir/$2 ]]; then
    cat $dir/$2 | base64 | tr -d "\n" ; echo
    return 0
  fi

Здесь просто cat'ится бинарный файл и сразу же кодируется.
Кроме того, если strings одинаковы, пароль будет одинаковым.

Преимущества

Управление простое. Поскольку это файловая система, ее можно использовать на другом сервере, если это необходимо.
Генерация также проста. Даже если вы потеряете файл, вы можете восстановить его, если помните имя файла и strings.
Цель этого менеджера паролей — просто как можно меньше зависеть от внешних факторов и иметь относительно безопасный пароль, даже если вы можете запомнить только короткие пароли.
Он может быть устойчив к брутфорсу, но если оболочка будет скомпрометирована, это опасно. Однако, если у вас есть только пароль, но вы не знаете адрес электронной почты/номер телефона и где он используется, это не имеет большого смысла.
Кроме того, поскольку это простой скрипт оболочки, его легко настраивать и изменять. Возможно, sha256sum будет лучше, чем sha384sum, и вы можете выбрать свою любимую кодировку символов и длину строки.

До скорого. Всего наилучшего.

Related Posts