2013-11-08 1 views
0

У меня проблема с безопасностью в скрипте. Я должен передать ему имя пользователя и пароль, но я не могу дать ему пароль, не зашифрованный. Этот скрипт вызывается в bash.Как строка Decript, ранее криптоватая в 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"' 

и что-то подобное для decript это

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

, но он не работает. Кто-то может мне помочь?

+0

Я думаю, что вы просто поставляете пароль с открытым текстом, а 'wget' будет шифровать его при необходимости при общении с сервером. – chepner

ответ

0

Проблема решена:

эхо $ пароль | openssl enc -base64 -d

0

Ваша команда не шифрует, она просто кодирует пароль как шестую строку. Любой программист, который видит строку, сразу узнает, как вернуть пароль открытого текста.

Вместо этого передайте пароль wget таким образом, чтобы люди не могли просто взять его с вывода ps. Вот один из способов сделать это:

wget -v "$HOST" --http-user="$USER" --no-check-certificate --config=/dev/stdin <<< "http_password = $PASSWORD" 
+0

Прошу прощения, но мне нужно передать его, по-моему, не stdin, потому что это вход для другого скомпилированного скрипта – clarkseth

+0

Я не понимаю. Вы не вызываете wget? –

 Смежные вопросы

  • Нет связанных вопросов^_^