源码:
#!/bin/sh
#get file length
file_len=`ls -l $1 | awk '{print $5;}'`
> $3
count=0
until [ "$count" -ge "$file_len" ]
do
#get one byte data
temp_buffer=`hexdump -x -s $count -n 1 $1 | (read b1 b2 b3 b4 ; echo "$b2" | tr "[] " "[]" )`
char_buffer=`expr substr $temp_buffer 3 2`
echo $char_buffer
#xor
temp_buffer=`echo $[0x$char_buffer^0x$2]`
#convert to hex
result_buffer=`echo "obase=16;$temp_buffer" | bc`
#write into file
echo -n -e "/x${result_buffer}" >> $3
count=`expr $count + 1`
done
exit 0
使用说明: