#!/bin/bash if [ $# -lt 1 ] then echo "Usage: ./`basename $0` PRIVKEY.TXT < HEXPAYLOAD > ENCODED.TXT" exit 1 fi payload=$(cat | tr '[:lower:]' '[:upper:]') len=$((${#payload} * 4)) bits=$(printf "%*s" $len $(echo "ibase=16;obase=2;$payload" | bc | tr -d '\\\n') | tr ' ' 0) while IFS= read -r p; do bit=${bits:0:1}; bits=${bits:1}; echo $p | cut -d ' ' -f$(($bit + 1)); done < "$1"