Introduction
Step 1
I tried to read the barcode (see image below) using a mobile barcode reader and online tools and got it: data - 30925018, visualization algorithm - Code128C
Step 2
Then I tried to generate a barcode from given data and got these images:
Original barcode
Generated barcode
Step 3
As you can see, the images are different. So, I decided to decrypt it by myself. Here is the result:
Original decrypted barcode
Generated decrypted barcode
Сlarifications
As Wikipedia says (https://en.wikipedia.org/wiki/Code_128):
The check digit is a weighted modulo-103 checksum. It is calculated by summing the start code 'value' to the products of each symbol's 'value' multiplied by its position in the barcode string.
I tried to generate barcode from the given data by Java libs in my application, and by online tools. Both gave me the same result.
Questions
- Why do online tools generate barcodes without a checksum, but with FNC1 at the end?
- Why there is a FNC1 at the beginning of the barcode?
- Is a checksum required by Code128 specification?
My thoughts
- I think GS1-128 specification can be cause of FNC1 at the beginning of the barcode
- FNC1 at the end can be just a checksum. It is just a coincidence.