0

我的脚本存在安全问题。我必须给它一个用户名和密码,但我不能给它一个未加密的密码。该脚本是用 bash 编写的。

#!/bin/bash
HOST=$1
USER=$2
PASSWORD=$3
#PASSWORD=`perl -e 'print pack "H*",$PASSWORD'`
wget -v $HOST --http-user=$USER --http-password=$PASSWORD --no-check-certificate
......

我想用这样的东西来生成密码:

perl -e 'print unpack "H*","yourpassword"'

和类似的东西来描述它

descrpt=`perl -e 'print pack "H*","encrypted password"'`

但它不起作用。有人可以帮助我吗?

4

2 回答 2

0

您的命令不会加密,它只是将密码编码为十六进制字符串。任何看到该字符串的程序员都会立即知道如何取回明文密码。

相反,将密码传递给wget人们不能只是从ps输出中获取它。这是这样做的一种方法:

wget -v "$HOST" --http-user="$USER" --no-check-certificate --config=/dev/stdin <<< "http_password = $PASSWORD"
于 2013-11-08T17:37:11.600 回答
0

问题解决了:

回声$密码| openssl enc -base64 -d

于 2013-11-11T11:42:52.937 回答