Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf20:robotik:modernecrypto:hashes:pruefsummen [2021/06/02 09:33] – Ivo Blöchliger | lehrkraefte:blc:informatik:glf20:robotik:modernecrypto:hashes:pruefsummen [2021/06/04 09:31] (current) – Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Prüfsummen ====== | ||
| + | Oft ist die letzte Ziffer eines Zahlen-Codes eine Prüfsumme der vorhergehenden Ziffern. Damit kann z.B. festgestellt werden, wenn genau eine Ziffer falsch eingegeben wurde, oder die meisten Fälle von vertauschten Ziffern. In vielen Fällen wird eine «Art Quersumme» berechnet. Beispiele sind | ||
| + | * IBAN (Kontonummern) | ||
| + | * Kreditkartennummern | ||
| + | * Referenznummern auf Einzahlungsscheinen | ||
| + | * Bar-Codes (z.B. EAN-Codes im Supermarkt). | ||
| + | * ISBN (Büchernummern) | ||
| + | |||
| + | <WRAP todo> | ||
| + | Sie haben bestimmt ein Buch mit 13-stelliger ISBN-Nummer und/oder einen Artikel mit einem EAN-Code bei sich. | ||
| + | |||
| + | Überprüfen Sie für diese **von Hand** die Prüfsumme (letzte Ziffer). Finden Sie dazu eine Anleitung. Die Berechnungsmethode ist für beide gleich. Für 10-stellige ISBN-Nummern (vor dem Jahr 2006) ist die Prüfsummenberechnung eine andere. | ||
| + | |||
| + | <hidden Suchen Sie die Anleitung bitte selber!> | ||
| + | z.B. hier: https:// | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | **Optinale Knacknuss** | ||
| + | |||
| + | Folgender Code überprüft, | ||
| + | <code python ean.py> | ||
| + | # EAN-Code Überprüfen | ||
| + | |||
| + | code = " | ||
| + | |||
| + | if len(code)!=13: | ||
| + | print(" | ||
| + | exit() | ||
| + | | ||
| + | | ||
| + | summe = 0 | ||
| + | for i in range(12): | ||
| + | ziffer = int(code[i]) | ||
| + | if i%2==0: | ||
| + | summe = summe + ziffer | ||
| + | else: | ||
| + | summe = summe + 3*ziffer | ||
| + | | ||
| + | # Prüfziffer aus der Summe berechnen | ||
| + | pruefziffer = (10 - summe%10) % 10 | ||
| + | |||
| + | if int(code[12]) == pruefziffer: | ||
| + | print(" | ||
| + | else: | ||
| + | print(" | ||
| + | | ||
| + | </ | ||
| + | Passen Sie obigen Code so an, dass 10-stellige ISBN-Nummern damit überprüft werden können (wobei es diese seit 2006 nicht mehr gibt). | ||
| + | |||
| + | Damit die Nummern einfacher eingeben werden können (mit Minuszeichen) können Sie folgendes verwenden: | ||
| + | <code python> | ||
| + | isbn = " | ||
| + | print(isbn) | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||