Enviado em 08/05/2023 - 11:05h
Opa bom dia amigos.
Fiz um script com intuito puramente acadêmico para criar uma cifra sobre uma palavra e descrifrar logo após, fiz com muita gambiarra e gostaria de saber se poderia abusar de algumas outras lógicas para realizar tarefas como essa. vou deixar o script de exemplo
ad_wc=$1
phrase_to_encript_decript_caesar=$(echo $2 | tr [A-Z] [a-z])
phrase=$3
foo() {
input=$(
echo {a..z} |\
sed 's/\s//g' | sed -r "s/^([a-z]){${ad_wc}}/\1/g" |\
grep -Eo "^."
)
if [[ "${phrase}" == "-d" ]] && [[ "${ad_wc}" =~ [0-9]+ ]] && [[ "${phrase_to_encript_decript_caesar}" =~ ^(\s?|[a-zA-Z])+$ ]]
then
dencrypt=$({
paste -d"=" <(eval echo {a..z} | sed -r "s/(.*${input}\s?)(.*)/\2 \1/g" | sed 's/\s/\n/g') <(echo {a..z} | sed -r 's/\s/\n/g')
})
else
dencrypt=$({
paste -d"=" <(echo {a..z} | sed -r 's/\s/\n/g') <(eval echo {a..z} | sed -r "s/(.*${input}\s?)(.*)/\2 \1/g" | sed 's/\s/\n/g')
})
fi
{
eval "$(sed -r 's/^=//g' <<<${dencrypt} | sed '/^$/d')"
eval echo "$(sed -r 's/(.)/$\1/g' <<<${phrase_to_encript_decript_caesar})"
}
}
foo
Fiz um script com intuito puramente acadêmico para criar uma cifra sobre uma palavra e descrifrar logo após, fiz com muita gambiarra e gostaria de saber se poderia abusar de algumas outras lógicas para realizar tarefas como essa. vou deixar o script de exemplo
ad_wc=$1
phrase_to_encript_decript_caesar=$(echo $2 | tr [A-Z] [a-z])
phrase=$3
foo() {
input=$(
echo {a..z} |\
sed 's/\s//g' | sed -r "s/^([a-z]){${ad_wc}}/\1/g" |\
grep -Eo "^."
)
if [[ "${phrase}" == "-d" ]] && [[ "${ad_wc}" =~ [0-9]+ ]] && [[ "${phrase_to_encript_decript_caesar}" =~ ^(\s?|[a-zA-Z])+$ ]]
then
dencrypt=$({
paste -d"=" <(eval echo {a..z} | sed -r "s/(.*${input}\s?)(.*)/\2 \1/g" | sed 's/\s/\n/g') <(echo {a..z} | sed -r 's/\s/\n/g')
})
else
dencrypt=$({
paste -d"=" <(echo {a..z} | sed -r 's/\s/\n/g') <(eval echo {a..z} | sed -r "s/(.*${input}\s?)(.*)/\2 \1/g" | sed 's/\s/\n/g')
})
fi
{
eval "$(sed -r 's/^=//g' <<<${dencrypt} | sed '/^$/d')"
eval echo "$(sed -r 's/(.)/$\1/g' <<<${phrase_to_encript_decript_caesar})"
}
}
foo