Jacksum Hacks - jonelo/jacksum GitHub Wiki
[!TIP] Jacksum's primary purpose is to deal with hashes. However, since Jacksum supports both many encodings and customized formatting you get additional features that can be quite useful sometimes. The Jacksum Hacks were not planned. I was also quite surprised about this side effect which works pretty well.
For all examples below we set -a none
, because we are not interested in hashing at all.
File dumps
Hex dump
$ jacksum -a none -q file:myfile.dat -F "#SEQUENCE" -E hex -g 1
4a 61 63 6b 73 75 6d
Base64 dump
$ jacksum -a none -q file:myfile.dat -F "#SEQUENCE{base64}
SmFja3N1bQ==
Z85 dump
$ jacksum -a none -q file:myfile.dat -F "#SEQUENCE{z85}
n)#jBB9hs
Working with strings ...
Count characters of a string
$ jacksum -a none -q "txt:Hello World" -F "#LENGTH"
11
String to hex
$ jacksum -a none -q "txt:Hello World" -F "#SEQUENCE" -E hex -g 1
48 65 6c 6c 6f 20 57 6f 72 6c 64
Formatted string to hex
$ jacksum -a none -q "txtf:Hello World\n" -F #SEQUENCE -E hex -g 1
48 65 6c 6c 6f 20 57 6f 72 6c 64 0a
Binary to ...
Bin to dec
$ jacksum -a none -q bin:1010101010101010 -F "#SEQUENCE{dec}"
43690
Bin to octal
$ jacksum -a none -q bin:1010101010101010 -F "#SEQUENCE{oct}"
125252
Bin to hex
$ jacksum -a none -q bin:1010101010101010 -F "#SEQUENCE{hex}"
aaaa
Bin to everything
$ jacksum -a none -q bin:1010101010101010 -F "bin: #SEQUENCE{bin}, dec: #SEQUENCE{dec}, oct: 0#SEQUENCE{oct}, hex:#SEQUENCE{hex-uppercase}"
bin: 1010101010101010, dec: 43690, oct: 0125252, hex:AAAA
Bin to everything in JSON
$ jacksum -a none -q bin:1010101010101010 -F '{ "bin": "#SEQUENCE{bin}", "dec": "#SEQUENCE{dec}", "oct": "0#SEQUENCE{oct}", "hex": "0x#SEQUENCE{hex-uppercase}" }'
{ "bin": "1010101010101010", "dec": "43690", "oct": "0125252", "hex": "0xAAAA" }
Bin to base64
$ jacksum -a none -q bin:1010101010101010 -F "#SEQUENCE{base64}"
qqo=
Bin to z85
$ jacksum -a none -q bin:1010101010101010 -F "#SEQUENCE{z85}"
S&u
Decimal to ...
Decimal to binary
$ jacksum -a none -q dec:42 -F "#SEQUENCE{bin}"
00101010
Decimal to hex
$ jacksum -a none -q dec:42 -F "#SEQUENCE{hex-uppercase}"
2A
Decimal to octal
$ jacksum -a none -q dec:42 -F "#SEQUENCE{oct}"
52
Decimal to everything
$ jacksum -a none -q dec:42 -F "bin: #SEQUENCE{bin}, dec: #SEQUENCE{dec}, oct: 0#SEQUENCE{oct}, hex:#SEQUENCE{hex-uppercase}"
bin: 00101010, dec: 42, oct: 052, hex:2A
Decimal to everything in JSON
$ jacksum -a none -q dec:42 -F '{ "bin": "#SEQUENCE{bin}", "dec": "#SEQUENCE{dec}", "oct": "0#SEQUENCE{oct}", "hex": "0x#SEQUENCE{hexup}" }'
{ "bin": "00101010", "dec": "42", "oct": "052", "hex": "0x2A" }
Decimal to base64
$ jacksum -a none -q dec:42 -F "#SEQUENCE{base64}"
Kg==
Decimal to z85
$ jacksum -a none -q dec:42 -F "#SEQUENCE{z85}"
dG
Hex to ...
Hex to binary
$ jacksum -a none -q hex:cafe08 -F "#SEQUENCE{bin}"
110010101111111000001000
Hex to decimal
$ jacksum -a none -q hex:7A -F "#SEQUENCE{dec}"
122
Hex to octal
$ jacksum -a none -q hex:7A -F "#SEQUENCE{oct}"
172
Lowercase hex to uppercase hex
$ jacksum -a none -q hex:cafe08 -F "#SEQUENCE{hex-uppercase}"
CAFE08
Uppercase hex to lowercase hex
$ jacksum -a none -q hex:CAFE08 -F "#SEQUENCE{hex-lowercase}"
cafe08
Hex to everything
$ jacksum -a none -q hex:CAFE -F "bin: #SEQUENCE{bin}, dec: #SEQUENCE{dec}, oct: 0#SEQUENCE{oct}, hex:#SEQUENCE{hexup}"
bin: 1100101011111110, dec: 51966, oct: 0145376, hex:CAFE
Hex to everything in JSON
$ jacksum -a none -q hex:CAFE -F '{ "bin": "#SEQUENCE{bin}", "dec": "#SEQUENCE{dec}", "oct": "0#SEQUENCE{oct}", "hex": "0x#SEQUENCE{hexup}" }'
{ "bin": "1100101011111110", "dec": "51966", "oct": "0145376", "hex": "CAFE" }
Hex to base64
$ jacksum -a none -q hex:C0DECAFE -F "#SEQUENCE{base64}"
wN7K/g==
Hex to z85
$ jacksum -a none -q hex:C0DECAFE -F "#SEQUENCE{z85}"
Z#0lk
Base64 to ...
Decode base64 and encode to hex
$ jacksum -a none -q base64:wN7K/g== -F "#SEQUENCE{hex-uppercase}"
C0DECAFE
Decode base64 and encode to z85
$ jacksum -a none -q base64:wN7K/g== -F "#SEQUENCE{z85}"
Z#0lk
Z85 to ...
Decode Z85 and encode to hex
$ jacksum -a none -q "z85:Z#0lk" -F "#SEQUENCE{hex}"
c0decafe
Decode Z85 and encode to base64
$ jacksum -a none -q "z85:Z#0lk" -F "#SEQUENCE{base64}"
wN7K/g==