加密/解密存储在配置文件中的密码

时间:2010-08-17 09:30:21

标签: bash encryption

我有一个简单的Bash脚本,可以自动执行需要基于密码的身份验证的任务。 目前,我以纯文本格式存储凭据:

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

显然这很糟糕 - 所以我想知道是否有一种使用我的公钥/私钥对加密/解密密码的简单方法。使用Yet Another Password进行加密不会获得太多收益,所以我希望它能够自动发生。

我已经做了一些研究(在这里和其他地方),但在这个方面我已经超出了我的深度......

3 个答案:

答案 0 :(得分:3)

自动执行任务意味着提供密码;加密/混淆密码不会有什么影响,你也需要提供解密。
解决这一难题的唯一方法是类似代理的程序,例如ssh-agent,它会为您存储密码。

(编辑:更正的链接)

答案 1 :(得分:3)

您可以将密码存储到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 :(得分:2)

如果您只想隐藏密码,请存储其SHA1哈希值。将输入密码的哈希值与存储的哈希值进行比较。