Skip to content

Instantly share code, notes, and snippets.

@alanhuang122
Last active December 10, 2020 02:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save alanhuang122/65bf11dbb73a147cae316d5f537f0359 to your computer and use it in GitHub Desktop.
Save alanhuang122/65bf11dbb73a147cae316d5f537f0359 to your computer and use it in GitHub Desktop.
Sample IBI Lite barcode translation
Sourced from https://patents.google.com/patent/US7882036B1
Field # Length Offset Name
1 1 0 Indicia Version Number
2 4 1 Piece Counter
3 1 5 IBI Vendor/Model
4 3 6 PSD Serial Number
5 3 9 Postage Value (in 1/10s of a cent)
6 2 12 Intelligent Mail Service
7 6 14 HMAC Message Digest
Total 20
Sample (from http://www.micronite.com/en-us/products/barcodeinspector/#prettyPhoto[gallery1]/6/ )
Recreated for scanning https://i.imgur.com/ur1GEUI.png
ff 47 13 27 00 11 f5 0f ce 96 01 00 00 00 9a ca 29 21 e3 f1
Fields are stored little-endian.
Indicia Version Number FF = 0?
Piece Counter 00 27 13 47 = 2,560,839
IBI Vendor/Model 11 = 17
PSD Serial Number CE 05 FF = 13,501,951
Postage Value 00 01 96 = 406 -> $0.406
Intelligent Mail Service 00 00 = 0
HMAC Message Digest 9A CA 29 21 E3 F1 (Micronite didn't convert HMAC byte order - intentional?)
@frederickding
Copy link

Very neat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment