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==