Чтобы увидеть, что он делает, просто запустите его с установленной опцией bash -x
, например, если скрипт сохранен в vig.sh
:
bash -x vig.sh
в основном, a
для хранения заглавных букв
-d
, является необязательным параметром для дешифрования, когда установлено, m
будет делать ставку на -
, это считывает со входа t
для хранения исходной строки, k
клавиша
printf "string: ";read t
printf "keyphrase: ";read -s k
следующее делает цикл по символьным индексам переменной t
for ((i=0;i<${#t};i++)); do
p1
содержит алфавит с суффиксом, начинающимся с удаления текущего символа из t
p1=${a%%${t:$i:1}*}
p2
делает то же самое с текущим символом от ключа (по модулю, чтобы избежать выхода за пределы)
затем сумма или разница (когда установлена опция -d) междуДлина p1
и p2
используется для получения символа в алфавите и добавляется к d
.
Примеры
vig.sh
string: HELLOWORLD
keyphrase: FOO
-> MSZQCKTFZI
vig.sh -d
string: MSZQCKTFZI
keyphrase: FOO
-> HELLOWORLD