Eine(!) gültige Iban berechnen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
greetings1
User
Beiträge: 51
Registriert: Donnerstag 22. Oktober 2020, 18:19

Hallo Leute,

ich möchte nur eine gültige deutsche IBAN berechnen, aber bin dabei vor ein paar Rätsel gestellt worden:

Code: Alles auswählen

from random import randint
import string

LETTERS = {ord(d): str(i)
           for i, d in enumerate(string.digits + string.ascii_uppercase)}


def _number_iban(iban):
    return (iban[4:] + iban[:4]).translate(LETTERS)


def generate_iban_check_digits(iban):
    number_iban = _number_iban(iban[:2] + '00' + iban[4:])
    return '{:0>2}'.format(98 - (int(number_iban) % 97))


def valid_iban(iban):
    return int(_number_iban(iban)) % 97 == 1


if __name__ == '__main__':
    c = 0
    cmax = 50000
    nrmax = 10**10
    print(nrmax)
    my_checksum = input('Checksum (the first four characters): ')
    my_blz = input('Bank code (8 digits): ')
    my_example = ''
    for i in range(0, cmax):
        my_nr = '%010d' % randint(0, 9999999999)
        my_iban = my_checksum + my_blz + my_nr
        if (generate_iban_check_digits(my_iban) == my_iban[2:4] and valid_iban(my_iban)):
            c += 1
            if (c == 1):
                my_example = my_iban
    print('There are about {} account numbers for the checksum and the bank code {}. One of them is: {}.'.format(
        (float(c)/cmax)*nrmax, my_checksum + my_blz, my_example))

Wenn ich jetzt zum Beispiel die BLZ der ING eingebe, dann erhalte ich folgende Ausgabe:

Code: Alles auswählen

Checksum (the first four characters): DE34
Bank code (8 digits): 50010517
There are about 99000000.00000001 account numbers for the checksum and the bank code DE3450010517. One of them is: DE34500105170123598050.
Und wenn ich dann "DE34500105170123598050" bei https://www.iban.com/iban-checker eingebe, sagt er mir zwar, dass die IBAN-Werte gültig seien, jedoch nicht die Kontonummer... Ich zweifle auch etwas daran, dass es sogar bis zu 100 Millionen gültige IBAN-Nummern für eine Bank und Prüfsumme gibt.

Was hab ich übersehen? Vielen Dank fürs Proofreading. :)
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Richtig gut wäre gewesen, wenn du auch mitgeteilt hättest, was _genau_ die Seite bemängelt.
Denn du folgst ja nur der Anweisung, wie man eine IBAN validiert. In der IBAN steckt aber eine Kontonummer. Und die hat in Deutschland ebenfalls eine Prüfziffer.
greetings1
User
Beiträge: 51
Registriert: Donnerstag 22. Oktober 2020, 18:19

Hallo sparrow & Danke für deine Antwort.

Es sieht also so aus, als wenn ich auch noch eine zusätzliche Validierung der Konto-Nummer bräuchte, und das die möglichen IBAN-Nummern zu einer IBAN-Prüfsumme und BLZ weiter einschränkt, oder?

Die Frage ist mir eingefallen, weil ich mich gefragt hatte, inwieweit man eine Konto-Nummer "erraten" könnte, wenn man nur die ersten 4 Zeichen ( Prüfsumme) und die Bank ( BLZ) kennt.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@greetings1: Die Banken selbst können da noch weitere Einschränkungen machen/Bedingungen aufstellen. Zum Beispiel das Privat- und Geschäftskonten aus unterschiedlichen Nummernbereichen kommen, oder das Girokonten oder Hauptkonten pro Kunde immer mit einer bestimmten Ziffernfolge enden müssen und so weiter. Und es kann aus historischen Gründen auch verschiedene Regelsätze bei einer Bank geben. Zum Beispiel falls die Bank durch eine Fusion entstanden ist. Ist also die Frage was eine gültige Kontonummer am Ende genau ist, beziehunsweise wen man fragt/was man überprüft, und welche konkreten Zusatzbedingungen man insgesamt kennt.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
greetings1
User
Beiträge: 51
Registriert: Donnerstag 22. Oktober 2020, 18:19

@__blackjack : Danke für die Erklärung... Du hättest nicht zufällig ein Beispiel dafür, wie man zusätzlich die Kontonummer validieren könnte (in Python!), oder? ;) LG
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

@greetings1: Hast du denn einen entsprechenden Regelsatz? __blackjack__ hat ja gesagt, dass das individuell ist
greetings1
User
Beiträge: 51
Registriert: Donnerstag 22. Oktober 2020, 18:19

sparrow hat geschrieben: Mittwoch 16. November 2022, 16:45 @greetings1: Hast du denn einen entsprechenden Regelsatz? __blackjack__ hat ja gesagt, dass das individuell ist
Ich selber habe die Validitäts-Regeln nicht...

Auf IBAN Checker steht nur:

Bild

Wo könnte ich diese nachlesen, hoffe, die sind nicht Ultra-kompliziert... :roll:

Und weshalb gibt es in DE als einziges Land so komplizierte Regeln? :|
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@greetings1: Wieso als einziges Land? Das steht „For example:“ und dann sind gerade mal 5 Länder aufgeführt.

Bei uns entscheidet das anscheinend jede Bank selbst, beziehungsweise entschied das irgendwann mal selbst, und als es um die Standardisierung davon ging, hat die Bundesbank gesagt „zeigt mal was ihr da an Verfahren habt“ und als nächstes dann „Ui, das sind aber ganz schön viele“. 😀
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
paddie
User
Beiträge: 101
Registriert: Donnerstag 11. Oktober 2018, 18:09

Der passende Link dazu wäre wohl der hier: https://www.bundesbank.de/de/aufgaben/u ... ern-603282

Da gibts dann unten einen Downloadlink zu den Berechnungsmethoden der Prüfziffer. Zusätzlich wird da auch direkt auf die Bankleitzahlen verlinkt. Die gibts dann dort auch direkt zum Download.

Ich habs nur überflogen...aber bei manchen Methoden frag ich mich echt wie die auf sowas gekommen sind...
greetings1
User
Beiträge: 51
Registriert: Donnerstag 22. Oktober 2020, 18:19

Danke euch! :)

@paddie : Ja, da hast du recht. Wahrscheinlich ist die BBAN auch wieder "historisch gewachsen", und deshalb mittlerweile so "verschlampt" bzw. über-restriktiv... anders kann ich mir das auch nicht erklären. MMn, wird es Zeit, aus der EU auszutreten und zur stabilen DM zurückzukehren... Aber das ist ein anderes Thema. ;)

Ich bleibe an diesem Thema dran, und schreibe euch hier, ob ich Erfolge vorweisen konnte. :)
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
MMn, wird es Zeit, aus der EU auszutreten und zur stabilen DM zurückzukehren...
An dann ändert sich automatisch die Kontonummer? Wohl eher nicht... Also meine Kontonummer ist seit 1999 (Hint: da gab es noch D-Mark) unverändert, nur halt seit der Umstellung auf IBAN darin verwurstet. Ich gehe davon aus, dass die diversen Prüfsummenberechnungen weitestgehend älter als der Euro sind.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@greetings1: IBAN heisst I wie „international“ ja nicht wegen der EU, das heisst *daran* ändert sich auch ohne EU nix. Wenn man sich die Entstehung anschaut und das ganze zu komplex und flexibel findet: Fanden die europäischen Banken auch beim ursprünglichen internationalen ISO-Vorschlag und haben darauf gedrängt, dass das *einfacher* wird. Und da steckt auch Verhandlungsmacht dahinter die durch ein geeintes Europa zustande kommt. Ohne EU wäre es also noch flexibler und komplizierter geworden.

Zudem ist die BBAN der *länderspezifische* Teil, also alles was da drin steckt ist Deutschland pur. Die Komplexität in dem Teil kannst Du nicht auf die EU schieben.

Welche stabile DM? Es ist eine komische Annahme, dass, nur weil die DM mal stabil war, das eine Eigenschaft der Währung ist, und die immer stabil geblieben wäre, nur wegen dem Namen. Gäbe es die heute noch, dann wäre sie entweder mit einem festen Umrechnungskurs an den EUR gebunden oder wir wären tatsächlich alleine gegen den Rest der EU. Wer sein tolles, auch mal stabiles Pfund wieder hat, sind die Briten. Läuft gerade nicht so super so alleine in der aktuellen Situation. Jedes dritte alleinerziehende Elternteil lässt mittlerweile Mahlzeiten ausfallen oder geht zur Tafel, damit der Nachwuchs was zu beissen hat.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
greetings1
User
Beiträge: 51
Registriert: Donnerstag 22. Oktober 2020, 18:19

Ja, schon gut, an der BBAN würde sich durch einen Austritt nichts ändern...

Aber die anderen Punkte stimmen, je mehr nationalstaatliche Souveränität an die EU abgegeben wird, umso schlechter geht es allen. ;) Das ist nur meine Meinung. Diese hat aber nicht mit dem Thema zu tun, deshalb bitte ignorieren.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Und deine Meinung ist belegbar falsch, wie man - wie hier bereits gesagt wurde - gut an Beispielen sehen kann.

"Früher war alles besser" ist eine erfolgreiche Selbsttäuschung 😆
greetings1
User
Beiträge: 51
Registriert: Donnerstag 22. Oktober 2020, 18:19

Nein, ist es nicht. Wir sind Transferland. Wenn mehr Staaten dem englischen Beispiel folgen würden, hätten wir weniger Probleme. Der Multilateralismus und De als "Einwanderungs"land versagt auf ganzer Linie. Aber lassen wir das jetzt doch bitte.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Politische Diskussionen anfangen, aber sich dann verbitten, das dazu Stellung bezogen - nee, is klar. Wenn du unwidersprochen deine Thesen absondern willst, mach dein eigenes Forum auf. Wenn du sie hier äußerst, wird dir widersprochen werden. Wenn du das nicht abkannst, dann spar dir solche Bemerkungen. Problem gelöst.

Deine Wahrnehmung der britischen Situation ist absurd verzerrt. Schlusslicht der Ökonomien der G7. Selbst der “Minister für Brexit Opportunities” kann keine benennen. Und Rishi Sunak bringt eine Annäherung nach Schweizer Modell ins Spiel. Muss natürlich alles ganz vorsichtig und verklausuliert geschehen, damit die Brexit-Ultras sich nicht verknoten…
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

zurück zum Thema: @greetings1: arbeitest du noch am Code oder ist das Thema durch? Wie wir ja hier im Thread gelernt haben (war zumindest mir so nicht bewusst), ist ja schon alleine das bestimmen einer gültigen, deutschen Kontonummer ziemlich komplett. Basierend auf einem der Posts weiter vorne wäre das bestimmen einer italienischen Kontonummer einfahch, weil du scheinbar landes- / bankenweit nur eine Methode einsetzen.

Was ist / war eigentlich Ziel das ganzen?

Gruß, noisefloor
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

greetings1 hat geschrieben: Samstag 26. November 2022, 15:11 Wenn mehr Staaten dem englischen Beispiel folgen würden, hätten wir weniger Probleme.
Selbst in England wird begonnen, den "Brexit" eher als "Bregret" zu betrachten ...
greetings1
User
Beiträge: 51
Registriert: Donnerstag 22. Oktober 2020, 18:19

kbr hat geschrieben: Samstag 26. November 2022, 16:02
greetings1 hat geschrieben: Samstag 26. November 2022, 15:11 Wenn mehr Staaten dem englischen Beispiel folgen würden, hätten wir weniger Probleme.
Selbst in England wird begonnen, den "Brexit" eher als "Bregret" zu betrachten ...
Ja, weil nun mit einer "Jetzt erst Recht!"-Mentalität seitens der EU gegen England nach dem Austritt vorgegangen wird, nach dem Credo: Dann machen wir ein schlechtes Vorbild aus euch, damit weitere Staaten nicht nachziehen könnten.

Mit dem eigentlichen Thema bin ich aber leider noch nicht weiter...
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Falls du an einer etwas differenzierten Betrachtungsweise interessiert bist, so findest du hier einen Blick von "außen":
https://www.nytimes.com/2022/11/22/worl ... egret.html
Gesperrt