Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- if [ $# -ne 1 ]
- then
- echo "Performs a number of encodings on the first argument string"
- echo "Usage: `basename $0` {string}"
- exit 1
- fi
- printf "\n# String Scrambles:\n"
- printf "%-20s\t" 'Normal:'; echo "$1"
- printf "%-20s\t" 'Reversed:'; echo "$1" | rev
- printf "%-20s\t" 'Case Reversed:'; echo "$1" | tr '[A-Z][a-z]' '[a-z][A-Z]'
- printf "%-20s\t" 'ROT13:'; echo "$1" | gcipher -c Rot -k 13
- #printf "%-20s\t" 'Rot13:' ; python -c "print '''$1'''.encode('rot13')"
- printf "%-20s\t" 'GIE:'; echo "$1" | gcipher -c Gie
- printf "%-20s\t" 'Caesar:'; echo "$1" | gcipher -c Caesar
- printf "%-20s\t" 'Vigenere:'; echo "$1" | gcipher -c Vigenere -k vigenere
- printf "%-20s\t" 'Anagrams:'; wordplay -s "$1" | sort -u | sed -n '1h;2,$H;${g;s/\n/, /g;p}'
- # Due to both terminal and editor encodings, this is better executed on a non-UTF8 terminal:
- printf "%-20s\t" 'Leet (l334):'; echo "$1" | tr [a-z] [A-Z] | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' '4ß(Ð3ƒ9H1JK£MN0PQ®$7µVWX¥2' | sed 's_H_|-|_g;s_J_\_|_g;s_K_|{_g;s_M_|\\/|_g;s_N_|\\|_g;s_P_|°_g;s_Q_¶¸_g;s_V_\\/_g;s_W_\\/\\/_g;s_X_)(_g' #See http://www.albinoblacksheep.com/text/leet
- printf "\n# Numerical Representations:\n"
- printf "%-20s\t" 'INT:'; echo -n "$1" | hexdump -ve '/1 "%03i"'; echo
- printf "%-20s\t" 'HEX:'; echo -n "$1" | hexdump -ve '/1 "%02x"'; echo
- printf "%-20s\t" 'OCT:'; echo -n "$1" | hexdump -ve '/1 "%02o"'; echo
- printf "%-20s\t" 'BIN:'; echo -n "$1" | xxd -b -g0 -c0 | cut -b10-56 | tr -d '\n '; echo
- printf "\n# Passwords:\n"
- printf "%-20s\t" "CRYPT w/o SALT:"; echo -n "$1" | openssl passwd -crypt -stdin -salt 00
- printf "%-20s\t" "CRYPT w/ Random SALT:"; echo -n "$1" | openssl passwd -crypt -stdin
- printf "%-20s\t" "DES w/ CR SALT:"; echo -n "$1" | openssl passwd -crypt -stdin -salt CR
- printf "%-20s\t" "Shadow w/o SALT:"; echo -n "$1" | openssl passwd -1 -stdin -salt 00000000
- printf "%-20s\t" "Shadow w/ RANDOM SALT:"; echo -n "$1" | openssl passwd -1 -stdin
- printf "%-20s\t" "Apache w/o SALT:"; echo -n "$1" | openssl passwd -apr1 -stdin -salt 00000000
- printf "%-20s\t" "Apache w/ RANDOM SALT:"; echo -n "$1" | openssl passwd -apr1 -stdin
- printf "%-20s\t" "LM Password:"; python -c "import smbpasswd; print smbpasswd.lmhash(\"\"\"$1\"\"\")" #requires python-smbpasswd
- printf "%-20s\t" "NTLM Password:"; python -c "import smbpasswd; print smbpasswd.nthash(\"\"\"$1\"\"\")" #requires python-smbpasswd
- printf "\n# Digest Hashes (newline not included):\n"
- #printf "%-20s\t" 'BINARY MD5:' ; echo -n $1 | openssl dgst -binary
- printf "%-20s\t" 'MD5:'; echo -n $1 | openssl dgst -md5
- printf "%-20s\t" 'MD4:'; echo -n $1 | openssl dgst -md4
- #printf "%-20s\t" 'MD2:'; echo -n $1 | openssl dgst -md2
- printf "%-20s\t" 'SHA1:'; echo -n $1 | openssl dgst -sha1
- printf "%-20s\t" 'SHA:'; echo -n $1 | openssl dgst -sha
- printf "%-20s\t" 'SHA224:'; echo -n $1 | openssl dgst -sha224
- printf "%-20s\t" 'SHA256:'; echo -n $1 | openssl dgst -sha256
- printf "%-20s\t" 'SHA384:'; echo -n $1 | openssl dgst -sha384
- printf "%-20s\t" 'SHA512:'; echo -n $1 | openssl dgst -sha512
- #printf "%-20s\t" 'MDC2:' ; echo -n $1 | openssl dgst -mdc2
- printf "%-20s\t" 'RIPEMD160:'; echo -n $1 | openssl dgst -ripemd160
- printf "%-20s\t" 'CRC32:'; python -c "import binascii; print binascii.crc32('''$1''') & 0xffffffff"
- printf "\n# Web Encodings\n"
- printf "%-20s\t" 'URLQuote:'; python -c "import urllib; print urllib.quote('''$1''')"
- printf "%-20s\t" 'URLEscape:'; echo "$1" | recode ..HTML
- printf "%-20s\t" 'HTML HEX Entity:'; echo -n "$1" | hexdump -ve '/1 "&#x%02x;"'; echo
- printf "%-20s\t" 'HTML Entity:'; echo -n "$1" | hexdump -ve '/1 "&#%02i;"'; echo
- printf "%-20s\t" 'Javascript String'; echo -n "String.fromCharCode("; echo -n "$1" | hexdump -ve '/1 "%i,"' | sed 's_,$_)\n_'
- printf "%-20s\t" 'SQL String'; echo -n $1 | hexdump -ve '/1 "char(%i)+"' | sed 's_+$_\n_g'
- printf "\n# UTF Encodings\n"
- printf "%-20s\t" 'UTF-7:'; echo $1 | iconv -t utf7
- printf "%-20s\t" 'UTF-8:'; echo $1 | iconv -t utf8
- printf "%-20s\t" 'UTF-16:'; echo $1 | iconv -t utf16
- printf "%-20s\t" 'UTF-32:'; echo $1 | iconv -t utf32
- printf "%-20s\t" 'Unicode:'; echo $1 | iconv -t unicode
- printf "%-20s\t" 'ASCII:'; echo $1 | iconv -t ascii
- printf "\n# Encodings\n" #http://docs.python.org/library/codecs.html#standard-encodings
- printf "%-20s\t" 'Base64:'; echo -n $1 | openssl enc -e -base64
- #printf "%-20s\t" 'Base64:'; python -c "import base64; print base64.b64encode('''$1''')"
- printf "%-20s\t" 'Base32:'; python -c "import base64; print base64.b32encode('''$1''')"
- printf "%-20s\t" 'Base16:'; python -c "import base64; print base64.b16encode('''$1''')"
- #printf "%-20s\t" 'UUEncode:'; python -c "print repr('''$1'''.encode('uu_codec'))"
- #printf "%-20s\t" 'UUEncode:';; echo -n $1 | hexdump -ve '/1 "#%02x"' | tr '#' '%'
- printf "%-20s\t" 'UUEncode:'; python -c "import binascii; print binascii.b2a_uu('''$1''')" | tr -s '\n'
- printf "%-20s\t" 'Punycode:' ; python -c "print '''$1'''.encode('punycode')"
- printf "%-20s\t" 'Mime Quotable:' ; python -c "print '''$1'''.encode('quopri_codec')"
- printf "\n# Compression Encodings\n"
- #printf "%-20s\t" 'Bzip2:' ; python -c "print repr('''$1'''.encode('bz2_codec'))" | sed "s_^'\(.*\)'\$_\1_"
- #printf "%-20s\t" 'Zlib (gzip):' ; python -c "print repr('''$1'''.encode('zlib_codec'))" | sed "s_^'\(.*\)'\$_\1_"
- printf "%-20s\t" '7z:' ; echo -n "$1" | 7z a dummy -tgzip -si -so 2>/dev/null | hexdump -ve '/1 "%02x"'| sed "s_\(..\)_\\\x\1_g"; echo
- printf "%-20s\t" 'Bzip2:' ; echo -n "$1" | bzip2 -f | hexdump -ve '/1 "%02x"'| sed "s_\(..\)_\\\x\1_g"; echo
- printf "%-20s\t" 'GZip:' ; echo -n "$1" | gzip -f | hexdump -ve '/1 "%02x"'| sed "s_\(..\)_\\\x\1_g"; echo
- printf "%-20s\t" 'Zip:' ; echo -n "$1" | zip 2>/dev/null | hexdump -ve '/1 "%02x"'| sed "s_\(..\)_\\\x\1_g"; echo
- #printf "\n# OpenSSL Ciphers with empty passphrase, key and iv:\n"
- #for line in `openssl enc -h 2>&1 | sed -n '/Cipher Types/,//p' | grep -v -e "Cipher Types" -e "^$" | tr -s [:space:] '\n'`; do printf "%-20s\t" "$line:"; echo -n $1 | openssl enc -k "" -e -a -p -K 0 -iv 0 "$line" | sed -n '1h;2,$H;${g;s/\n/, /g;p}'; done
- #printf "\n# All iconv Output Encodings ~= 1153:\n"
- #for line in `iconv -l`; do printf "%-20s\t" "$line"; echo -n $1 | iconv -t "$line" 2>/dev/null; echo; done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement