шифрование / дешифрование пароля, хранящегося в файле конфигурации - PullRequest
5 голосов
/ 17 августа 2010

У меня есть простой скрипт Bash, который автоматизирует задачи, требующие аутентификации на основе пароля. В настоящее время я храню учетные данные в виде простого текста:

$ cat ~/.myconfig
username=foo
password=bar

Очевидно, что это плохо - поэтому мне интересно, есть ли простой способ зашифровать / расшифровать пароль, используя мою пару открытого / закрытого ключа. Использование еще одного пароля для шифрования не принесет больших результатов, поэтому я хочу, чтобы это происходило почти автоматически.

Я провел какое-то исследование (где-то здесь и в другом месте), но я слишком далеко в этом ...

Ответы [ 3 ]

3 голосов
/ 18 августа 2010

Для автоматизации вашей задачи необходимо указать пароль; это не будет иметь значения, если вы зашифруете / запутаете пароль, вам также потребуется предоставить расшифровку.
Единственный способ обойти эту дилемму - программа, подобная агенту, например, ssh-agent , которая хранит ваши пароли для вас.

(редактировать: исправленная ссылка)

3 голосов
/ 01 мая 2012

Вы можете сохранить пароль в сумме md5, добавить соль раньше.

создать:

\#!/bin/bash

salt=12345_

protocol=sha1sum

read -p "Enter login: " username
read -p -s "Password: " pass1
read -p -s "Repeat: pass2

if [ "pass1 != pass2" ]; then echo "Pass missmatch"; exit 1; else password=pass1; fi

echo -en "$username " >> ./mypasswd
echo -e "${salt}${password} | $protocol | awk '{print $1}'" >> ./mypqsswd

прочитать:

\#!/bin/bash
salt=12345_ #(samesalt)
protocol=sha1sum

read -p "Enter username: " username
read -p -s "Enter password: " password

if [ `grep $username ./mypasswd | awk '{print $2}' != `echo -e "`echo ${salt}${password} | $protocol | awk '{print $2}'`" ]; then echo -e "wrong username or password"; exit 127; else echo -e "login successfull"; fi

Вот ваш код.

2 голосов
/ 17 августа 2010

Если вы просто хотите скрыть пароль, сохраните его хэш SHA1. Сравните хеш введенного пароля с сохраненным хешем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...