MOD 97 10 - homebeaver/ungueltig GitHub Wiki
MOD 97-10 Prüfzeichensystem
Das ISO-MOD 97-10 Prüfzeichensystem ist ein reines Systeme (Divisor ist 97
) mit zwei Prüfzeichen, siehe de.wikipedia. Reine Systeme verwenden nur einen Divisor.
Simplified procedure
In ISO/IEC 7064 wird ein vereinfachtes Verfahren (Simplified procedure) zur Berechnung der Prüfzeichen vorgestellt.
... since in normal decimal notation the digits are already weighted by the powers of the radix 10, a simplified procedure may be adopted. Append two zeros to the string, and divide by 97. Subtract the remainder from 98. The two digits in the result are the check characters.
Prüfzeichen berechnen
Die ISO/IEC_7064 Spec ist kostenpfichtig, daher hier ein Auszug aus der Leitweg Format-Spezifikation.
Beispielhafte Berechnung für eine Leitweg-ID ohne Prüfziffer: 04011000-1234512345
Daraus wird die zweistellige Prüfziffer (06
) in den folgenden Schritten berechnet:
- Die Grobadressierung wird übernommen (Stellen 1 bis zum ersten Bindestrich-Minus):
04011000
- Die Feinadressierung ohne Bindestrich-Minus wird übernommen:
1234512345
- Besteht diese nur aus numerischen Zeichen wird sie unverändert übernommen.
- Beinhaltet diese auch Buchstaben des lateinischen Alphabets, werden diese durch deren Position im Alphabet ersetzt, beginnend bei
A = 10
,B = 11
bisZ = 35
. Diese Variation ist nicht Bestandteil der ISO/IEC 7064 Norm und wird daher nicht in IsoIecPure97System sondern in Klasse Modulus97CheckDigit implementiert.
- Zwei Nullen (0) werden angefügt, um die Stellen der Prüfziffer zu belegen:
04011000123451234500
- Berechnung Modulo 97:
04011000123451234500 mod 97 = Rest = 92
- Subtraktion des Rests von 98 (97+1):
98 – 92 = 06
Validierung
Zur Überprüfung, wird die Leitweg-ID ohne Bindestriche und nach Alphabet-Übersetzung durch 97 geteilt: 04011000123451234506 / 97 Rest 1
.
Wenn der Rest 1
ist, dann ist es eine valide Leitweg-ID.
Verwendung
Varianten von MOD 97-10 werden verwendet für
- Leitweg ID in elektronischen Rechnungen
- die Rechtsträger-Kennung LEI (Legal Entity Identifier), normiert in ISO-17442 (Auszug 3/6)
- IBAN, die bekannteste Anwendung
- BELGIEN BTW-nr. (belasting toegevoegde waarde) Umsatzsteuer-Nr (VATIN)