I'm creating a factory to easily encrypt a file in this case in txt or decrypt. The problem in this program is the value of the CIFRA_HEX and CIFRA variable that I can not pass the stored value to the following function (decifra_RC4 ()) because the file can not be decrypted. How can I resolve this situation so that I can get the value of the keys in the function? The implemented code is in Bash Script
menu(){
case $opcao_menu in
1)echo "REVERSE CRYPTO 4" ;;
esac
echo "1 -> Cifrar"
echo "2 -> Decifrar"
echo "3 -> Voltar ao menu anterior"
echo "Escolha uma das seguintes opções:"
read opcao
case $opcao in
0);;
1) cifrar_RC4 ;;
2) decifrar_RC4;;
esac
}
cifrar_RC4() {
nome="RC4"
echo -n "Introduza a chave de cifra que pertende criar:"; read CIFRA
CIFRA_HEX= openssl rand -hex 8
if [[ -z "$CIFRA" ]]; then
echo $CIFRA_HEX
fi
echo -n "introduza o nome do ficheiro para cifrar:"; read ENTRADA_FICHEIRO
echo -n "Introduza o nome para o ficheiro de saida cifrado:"; read SAIDA_FICHEIRO
echo -n "Deseja remover o ficheiro original?"
if [[ -z "$ENTRADA_FICHEIRO" ]]; then
echo "O ficheiro foi encriptado"
fi
case $opcao_menu in
1) algoritmo_cifraRC4 ;;
2) algoritmo_cifraAES128 ;;
3) algoritmo_cifraAES256 ;;
esac
#read opcao
valor_chave=$CIFRA_HEX
echo "A cifra utilizada foi: " $nome
if [[ -z "$CIFRA" ]]; then
echo "A chave gerada foi: " $valor_chave
else
echo "A chave criada foi: " $CIFRA
fi
echo "O ficheiro criado foi:" $SAIDA_FICHEIRO
}
decifrar_RC4() {
echo -n "introduza o nome do ficheiro para decifrar:"; read SAIDA_FICHEIRO
echo -n "Introduza o nome para o ficheiro de saida:"; read ENTRADA_FICHEIRO
case $opcao_menu in
1) algoritmo_decifraRC4 ;;
2) algoritmo_decifraAES128 ;;
3) algoritmo_decifraAES256 ;;
esac
if [[ -z "$CIFRA" ]]; then
echo "A chave usada foi: " $CIFRA_HEX
else
echo "A chave usada foi: " $CIFRA
fi
echo "O ficheiro de saida foi: " $ENTRADA_FICHEIRO
}
algoritmo_cifraRC4(){
if [[ -z "$CIFRA" ]]; then
openssl enc -rc4 -e -K "$CIFRA_HEX" -in "$ENTRADA_FICHEIRO.txt" -out "$SAIDA_FICHEIRO.rc4"
else
openssl enc -rc4 -e -K "$CIFRA" -in "$ENTRADA_FICHEIRO.txt" -out "$SAIDA_FICHEIRO.rc4"
fi
}
algoritmo_decifraRC4(){
echo $valor_chave
if [[ -z "$CIFRA" ]]; then
openssl enc -rc4 -d -K "$CIFRA_HEX" -in "$SAIDA_FICHEIRO.rc4" -out "$ENTRADA_FICHEIRO.txt"
else
openssl enc -rc4 -d -K "$CIFRA" -in "$SAIDA_FICHEIRO.rc4" -out "$ENTRADA_FICHEIRO.txt"
fi
}
menu