#!/bin/bash # ./alterotx.sh # Israel Torres 20120305 # alternate rotations # ./alterotx.sh '23' 'ISRAELTORRES' # ROLLX: 23 # CRYPU: LPUXHIWLUOHP # PLAIN: ISRAELTORRES # CRYPD: FVODBOQROUBV # # for i in {0..26}; do ./alterotx.sh $i 'ISRAELTORRES'; done # # Mac OS X 10.7.3 11D50b # Darwin Kernel Version 11.3.0 # GNU bash, version 3.2.48(1)-release # # todo: add variables for inc/dec funcs function wrap_ascii (){ MYASC=$1;ASCII_LOWER=65;ASCII_UPPER=90 if [ "$1" -lt "$ASCII_LOWER" ]; then MYASC=$((ASCII_LOWER%$1)) MYASC=$(($ASCII_UPPER-$MYASC+1)) fi if [ "$1" -gt "$ASCII_UPPER" ]; then MYASC=$(($1%$ASCII_UPPER)) MYASC=$(($ASCII_LOWER+$MYASC-1)) fi echo $MYASC } function upme () { MYASC=$(printf '%d' "'${PLAIN:$i:1}'") MYCHR=$((MYASC+$ROLLX)) MYNEW=$(wrap_ascii "$MYCHR") MYOUT=$(printf \\$(printf '%03o' $MYNEW)) echo -n $MYOUT } function dnme () { MYASC=$(printf '%d' "'${PLAIN:$i:1}'") MYCHR=$((MYASC-$ROLLX)) MYNEW=$(wrap_ascii "$MYCHR") MYOUT=$(printf \\$(printf '%03o' $MYNEW)) echo -n $MYOUT } function roll_dn () { for (( i=0; i<$LEN_PLAIN; i++ )); do MYMOD=$(($i%2)) if [ "$MYMOD" == 0 ]; then upme fi if [ "$MYMOD" == 1 ]; then dnme fi done } function roll_up () { for (( i=0; i<$LEN_PLAIN; i++ )); do MYMOD=$(($i%2)) if [ "$MYMOD" == 0 ]; then dnme fi if [ "$MYMOD" == 1 ]; then upme fi done } # main() if [ ! $# -lt 2 ]; then PLAIN=$2; LEN_PLAIN=${#PLAIN} ROLLX=$1 CRYPU=$(roll_up);CRYPD=$(roll_dn) echo -e "ROLLX:\t$ROLLX" echo -e "CRYPU:\t$CRYPU" echo -e "PLAIN:\t$PLAIN" echo -e "CRYPD:\t$CRYPD" else echo "usage: $0 '#''STRING'" echo "example: $0 '1' 'ISRAELTORRES'" fi #eof