←back to thread

287 points robin_reala | 7 comments | | HN request time: 0.427s | source | bottom
1. nemoniac ◴[] No.44376720[source]
Here's a tidied up version of the Python code to generate the MRZ from the passport data. It also corrects a padding error.

    https://pastebin.com/k0Tty22a
My Dutch driver's licence has a single MRZ-like line across the bottom. It seems to encode the country and licence number but I can't make any sense of the rest of the line. Anyone have any leads?
replies(4): >>44377444 #>>44378696 #>>44380863 #>>44382706 #
2. Farbklex ◴[] No.44377444[source]
I haven't found the docs for the Dutch version but this article shows the content of the MRZ of a French drivers license. They seem to match the Dutch ones as well.

https://trustdochub.com/en/mrz-strip-french-driving-licence/...

replies(1): >>44385919 #
3. ◴[] No.44378696[source]
4. ◴[] No.44380863[source]
5. XiS ◴[] No.44382706[source]
Drivers licenses aren't ICAO 9303 compliant. For EU documents a separate spec is being used (NEN-ISO-IEC 18013-3). Small pointer: https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CEL...

Context: Made an implementation for reading these when Dutch drivers license model with NFC first came available (model 2014 if I remember correctly)

6. nemoniac ◴[] No.44385919[source]
Only partially. At least for my Dutch licence. It contains neither holder's last name nor end date.

It does start with D1NLD. Then a single digit which is not the checksum of the foregoing (using the passport checksum algorithm). Then the document number. Then some letters and numbers I can't make any sense of. It ends with a correct global checksum for all of the foregoing.

replies(1): >>44394035 #
7. XiS ◴[] No.44394035{3}[source]
See the spec I mentioned. But here's an excerpt. https://upload.disroot.org/r/Y_vdT16A#cW4coNxPvTJN6b8InO5cHW...