# BASH function to get the result # of a ^ b when a, b are in the # following hexadecimal string # form: AF396463D8705 ... # Obtained from here: # http://www.codeproject.com/Tips/470308/XOR-Hex-Strings-in-Linux-Shell-Script # Author is Sanjay1982 (see http://www.codeproject.com/Members/Sanjay1982) # Usage: # $ xor AB20FF40 DD14FABC function xor() { local res=(`echo "$1" | sed "s/../0x& /g"`) shift 1 while [[ "$1" ]]; do local one=(`echo "$1" | sed "s/../0x& /g"`) local count1=${#res[@]} if [ $count1 -lt ${#one[@]} ] then count1=${#one[@]} fi for (( i = 0; i < $count1; i++ )) do res[$i]=$((${one[$i]:-0} ^ ${res[$i]:-0})) done shift 1 done printf "%02x" "${res[@]}" }