international bank account number - mspengler.de · seite !2 msp was ist eine iban ?! wozu eine...
TRANSCRIPT
International Bank Account Number
Mario Spengler, Januar 2014, gymHerm
gymHerm 101 Jahre
Festvortrag
���2Seite MSP
Was ist eine IBAN ? Wozu eine IBAN ?
national ➞ international Fehlervermeidung
Wie erstellt man eine IBAN ? Aufbau Prüfzahl
Wie kann man die Prüfzahl berechnen ? Divisionsalgorithmus Tabellenkalkulation Taschenrechner Python
Warum korrekte IBANs stets eine „1’’ melden
InhalteNun bin ich
bereits zum 5. Mal
am gymHerm
���3Seite MSP
Prüfzahlen kommen in der Informatik häufig vor ISBN International Standard Book Number Seriennummer bei Euroscheinen Steuernummer Personalausweisnummer Prüfbit bei der Datenfernübertragung IBAN International Bank Account Number
ganz aktuell: im Euro-Zahlungsverkehrsraum SEPA (Single Euro Payments Area) sollen bis zum 1. Februar 2014 die nationalen Zahlungssysteme vollständig ersetzen werden.
���4Seite MSP
Was ist eine IBAN ?
vorher nachher
DRK DRK
Bankleitzahl 37020500 BIC BFSWDE33XXX
Kontonummer 414141 IBAN DE37370205000000414141
Kontonummer, 10 Bankleitzahl, 8 Prüfziffern, 2 Länderkennung, 2
BankKürzel, 4 Länderkennung 2 Ortscode, 2 FilialCode, 3
Bank für Sozialwirtschaft
Bank Identifier Code
!!!
International Bank Account Number
SWIFT ( Society for Worldwide Interbank Financial Telecommunication )
vergibt weltweit für jede Bank einen eindeutigen BIC,
die IBAN wird berechnet !Problem !
BIC entfällt ab dem 1. Februar 2014 BIC, im Ausland ab 2016
Spendenkonto
���5Seite MSP
Wozu eine IBAN ? national ➞ international
Beispiele!!Deutschland: BLZ 12345678! Kto 0123456789!!Österreich: BLZ 12345! Kto 00123456789!!Luxemburg: BLZ 123! Kto 9400644750000!!Frankreich: BLZ 2004101005! Kto 0500013M02606!!Malta: BLZ MALT01100! Kto 0012345MTLCAST001S!!
• Länge der Bankleitzahl !• Länge der Kontonummer !• Buchstaben !• Ziffern
Europa soll einfacher werden !
���6Seite MSP
Wozu eine IBAN ? Fehlervermeidung
Um bei der Übermittlung von • Länderkennung • Bankleitzahl • Kontonummer Fehler zu vermeiden wie • fehlende Ziffern • doppelte Ziffern • vertauschte Ziffern wurde eine Prüfzahl in die IBAN eingebaut.Problem :
Buchstaben in der IBAN
DE 10070848 0123456789 !!!!58
Dividiert man die IBAN durch 97, so muss sich bei korrekter Übermittlung der Rest 1 ergeben. !Ergibt sich ein anderer Rest wie 0, 2, 3, 4, 5, ……………….…, 94, 95 96, so wird die Transaktion (Geldüberweisung) abgebrochen.
���7Seite MSP
Wie erstellt man eine IBAN ? Aufbau
In Deutschland ganz einfach, man nehme in der richtigen Reihenfolge !• die 2-stellige Länderkennung • die 2-stellige Prüfzahl • die 8-stellige Bankleitzahl • die 10-stellige Kontonummer !und schreibe die Daten nebeneinander.
DE89370400440532013000
DE!89!37040044!0532013000
Problem : Berechnung der Prüfzahl
���8Seite MSP
Wie erstellt man eine IBAN ? Aufbau
In anderen Ländern fast genauso einfach, man nehme !• die 2-stellige Länderkennung • die 2-stellige Prüfzahl • die 2-8-stellige Bankleitzahl • den 0-3-stelligen KontoTyp • die 0-6-stellige FilialNummer • den 0-8-stelligen RegionalCode !• die 6-21—stellige Kontonummer • die 0-2-stellige nationale Prüfzahl !und schreibe die Zahlen nebeneinander.
Problem : Berechnung der Prüfzahl
aus Ziffern und Buchstaben
Belgien!BE!62!510! ! ! ! !007547!61
BE62510007547061
FR1420041010050500013M02606
Frankreich!FR!14!20041! !01005! !!0500013M02606
Niederlande!NL!39!RABO! !! !!0300065264
NL39RABO0300065264
Europa soll einfacher werden !
���9Seite MSP
Wie erstellt man eine IBAN ? Prüfzahl
Reihenfolge umstellen und Buchstaben nach Tabelle in Zahlen umwandeln !• nationale Bankdaten • Länderkennung • vorläufige Prüfzahl 00 !
DE89370400440532013000 370400440532013000131400
NL39RABO0300065264 271011240300065264232100
FR1420041010050500013M02606 200410100505000132202606152700
Die so erzeugten Zahlen werden durch 97 dividiert. Die Prüfzahl ergibt sich, indem man den Rest von 98 subtrahiert. Einstelligen Prüfzahlen wird eine Null vorangestellt.
Prüfzahl = 98 - IBAN mod 97
���10Seite MSP
Wie kann man die Prüfzahl berechnen ? DivisionsalgorithmusPrüfzahl = 98 - IBAN mod 97
370400440532013000131400 = 97·3818561242598072166303 + 9!-291 ! 794! -776! 180! -97! 830! -776! 544! -485! 594! -582! 120! -097! 235! -194! 413
413!-388! 252! -194! 580! -485! 951! -873! 783! -776! 070! -000! 700! -679! 210
210!-194! 161! -097! 643! -582! 611! -582! 294! -291! 030! -000! 300! -291! 09!
Prüfzahl = 98 - 9 = 89 370400440532013000131400 = 97·
���11Seite MSP
Wie kann man die Prüfzahl berechnen ? Tabellenkalkulation
Prüfzahl = 98 - IBAN mod 97
= REST(594; 97) = 12
���12Seite MSP
Wie kann man die Prüfzahl berechnen ? Tabellenkalkulation oder Taschenrechner
Einteilung der aufbereiteten IBAN in 6-er GruppenPrüfzahl = 98 - IBAN mod 97
���13Seite MSP
Wie kann man die Prüfzahl berechnen ? PythonIn der Programmiersprache Python können ganze Zahlen beliebige Längen haben. !• InterpreterVersion: Ausführung direkt nach der Eingabe !!!!• Compilerversion: Quelltest zuerst übersetzen, dann ausführen
>>> print 98 - 370400440532013000131400 % 97!89!>>> !!
���14Seite MSP
Wie kann man die Prüfzahl berechnen ? Python• Compilerversion: Quelltest zuerst übersetzen, dann ausführendef main():!... print !... blz = input("BLZ = ")!... kto = input("KTO = ")!... lnd = 131400!... bak = blz*10000000000 + kto!... ban = bak*1000000 + lnd!... prf = 98 - ban % 97!... print!... print "PRF = ", prf!... print!... print "IBAN = ", "DE", prf, bak !!!!!!>>> main()!
BLZ = 37040044!KTO = 532013000!!PRF = 89!!IBAN = DE 89 370400440532013000!
���15Seite MSP
Warum korrekte IBANs stets eine „1’’ meldenDividiert man die IBAN durch 97, so muss sich bei korrekter Übermittlung der Rest 1 ergeben. !Ergibt sich ein anderer Rest wie 0, 2, 3, 4, 5, ……………….…, 94, 95 96, so wird die Transaktion (Geldüberweisung) abgebrochen.
DE89370400440532013000 ! Python:! Original >>> 370400440532013000131489 % 97 >>> 1 ! ⬇⬇ Zifferntausch!>>> 370400440352013000131489 % 97 >>> 22 ! ⬇⬇ 0 zu wenig!>>> 37040044053201300131489 % 97 >>> 39 ! ⬇⬇ 0 zu viel!>>> 3704004405320130000131489 % 97 >>> 9
>>> 370400440532013000131489 % 97 >>> 1L!>>> 370400440532013000131489 % 97 >>> 1L!
Da fehlt nur noch der Beweis !
Warum
���16Seite MSP
Warum korrekte IBANs stets eine „1’’ melden
BankZahl = BLZKTOLK00 = n·97 + RestPrüfZahl = = 98 BZ + PZ = = n·97 + 98
= n·97 + 97IBAN = = (n+1) · 97 + 1
umgestellte IBAN mod 97 = 1
DE89370400440532013000 IBANBZ=370400440532013000131400 PZ = 98 - BZ mod 97
370400440532013000131489 umgestellte IBAN