You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
756 B
42 lines
756 B
5 years ago
|
#!/usr/bin/env bash
|
||
|
|
||
|
##Helper Functions
|
||
|
|
||
|
urldecode() {
|
||
|
# urldecode <string>
|
||
|
local url_encoded="${1//+/ }"
|
||
|
printf '%b' "${url_encoded//%/\\x}"
|
||
|
}
|
||
|
|
||
|
string="$1"
|
||
|
if [ -z "$string" ]; then
|
||
|
string="$(cat)"
|
||
|
fi
|
||
|
|
||
|
# Base 64
|
||
|
decoded=$(echo -n "$string" | base64 -d 2> /dev/null)
|
||
|
# Check to see if base64 decode was successfull, only print if it was
|
||
|
if [ $? -eq 0 ] && [ "$decoded" != "$string" ]; then
|
||
|
echo -en "Base64\t"
|
||
|
echo "$decoded"
|
||
|
fi
|
||
|
|
||
|
#URL
|
||
|
decoded=$(urldecode "$string")
|
||
|
if [ "$decoded" != "$string" ]; then
|
||
|
echo -en "URL\t"
|
||
|
echo "$decoded"
|
||
|
fi
|
||
|
|
||
|
#Hex
|
||
|
decoded=$(echo -n "$string" | xxd -r -p)
|
||
|
if [ ! -z "$decoded" ] && [ "$decoded" != "$string" ]; then
|
||
|
echo -en "HEX\t"
|
||
|
echo $decoded
|
||
|
fi
|
||
|
|
||
|
# Binary
|
||
|
echo -en "
|
||
|
for i in $string; do
|
||
|
echo "ibase=2;$i" | bc
|