我有一个简单的Bash脚本,用于自动化需要基于密码的身份验证的任务。目前我将凭据以明文形式存储:
$ cat ~/.myconfig
username=foo
password=bar
显然,这是不好的 - 所以我想知道是否有一种简单的方法可以使用我的公钥/私钥对加密/解密密码。使用另一个密码进行加密不会获得太多好处,因此我希望这个过程几乎自动化。
我已经做了一些研究(在这里和其他地方),但在这个问题上已经超出了我的能力范围...
我有一个简单的Bash脚本,用于自动化需要基于密码的身份验证的任务。目前我将凭据以明文形式存储:
$ cat ~/.myconfig
username=foo
password=bar
显然,这是不好的 - 所以我想知道是否有一种简单的方法可以使用我的公钥/私钥对加密/解密密码。使用另一个密码进行加密不会获得太多好处,因此我希望这个过程几乎自动化。
我已经做了一些研究(在这里和其他地方),但在这个问题上已经超出了我的能力范围...
您可以将密码存储为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
如果你只是想隐藏密码,那么可以存储它的SHA1哈希值。然后将输入的密码的哈希值与存储的哈希值进行比较。
chmod go-rw myconfig
以防止字典攻击。 - Eike
sha1sum
、sha256sum
、sha512sum
等等。) - Adam Liss