我的脚本存在安全问题。我必须传递一个用户名和密码,但我不能给它一个不加密的密码。 这个脚本是用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
......
我认为使用这样的东西生成cripted密码:
perl -e 'print unpack "H*","yourpassword"'
和类似的东西来描述它
descrpt=`perl -e 'print pack "H*","encrypted password"'`
但它不起作用。 有人可以帮我吗?
答案 0 :(得分:0)
您的命令不加密,它只是将密码编码为十六进制字符串。任何看到该字符串的程序员都会立即知道如何获取明文密码。
相反,请将密码传递给wget
,以便人们无法从ps
输出中获取密码。这是一种方法:
wget -v "$HOST" --http-user="$USER" --no-check-certificate --config=/dev/stdin <<< "http_password = $PASSWORD"
答案 1 :(得分:0)
问题解决了:
echo $ password | openssl enc -base64 -d