Walidator algorytmu Luhna
Luhn sprawdza tylko cyfrę kontrolną, nie to, czy karta jest aktywna.
Algorytm Luhna (ISO/IEC 7812-1) to suma kontrolna, która chroni numery kart kredytowych, identyfikatory urządzeń IMEI, kanadyjskie numery SIN, amerykańskie numery NPI i kilka innych systemów numeracji przed jednocyfrowymi literówkami. Wklej ciąg cyfr, spacje i myślniki są ignorowane, a walidator pokaże, czy numer jest prawidłowy, i przeprowadzi Cię przez kroki podwajania oraz sumowania, abyś w razie potrzeby mógł sprawdzić go ręcznie.
Jak oblicza się kontrolę Luhna
-
1
Usuń znaki niebędące cyframi
Spacje, myślniki i kropki są usuwane. Liczą się wyłącznie cyfry od 0 do 9.
-
2
Podwój co drugą cyfrę od prawej
Zaczynając od przedostatniej, co druga cyfra jest podwajana.
-
3
Zsumuj cyfry każdej podwojonej wartości
Jeśli podwojenie daje 14, dodaj 1 + 4 = 5. To odpowiada odjęciu 9 od każdego podwojenia ≥ 10.
-
4
Zsumuj wszystkie otrzymane wartości
Dodaj podwojone i zredukowane cyfry oraz cyfry nietknięte.
-
5
Sprawdź podzielność przez 10
Jeśli suma kończy się na 0, numer jest prawidłowy. W przeciwnym razie jest nieprawidłowy.
Przykład praktyczny
Sprawdź 4539 1488 0343 6467:
| Pozycja (prawa→lewa) | Cyfra | Podwojona? | Wartość |
|---|---|---|---|
| 1 | 7 | nie | 7 |
| 2 | 6 | tak | 12 → 3 |
| 3 | 4 | nie | 4 |
| 4 | 6 | tak | 12 → 3 |
| 5 | 3 | nie | 3 |
| 6 | 4 | tak | 8 |
| 7 | 3 | nie | 3 |
| 8 | 0 | tak | 0 |
| 9 | 8 | nie | 8 |
| 10 | 8 | tak | 16 → 7 |
| 11 | 4 | nie | 4 |
| 12 | 1 | tak | 2 |
| 13 | 9 | nie | 9 |
| 14 | 3 | tak | 6 |
| 15 | 5 | nie | 5 |
| 16 | 4 | tak | 8 |
Suma: 80. 80 mod 10 = 0 → prawidłowy.
Gdzie stosuje się algorytm Luhna
| System | Długość | Chroniony przez Luhna? |
|---|---|---|
| Visa, Mastercard, Discover | 13–19 cyfr | tak |
| American Express | 15 cyfr | tak |
| IMEI (identyfikator urządzenia GSM) | 15 cyfr | tak |
| Kanadyjskie ubezpieczenie społeczne (SIN) | 9 cyfr | tak |
| Amerykański krajowy identyfikator świadczeniodawcy (NPI) | 10 cyfr | tak |
| Izraelski dowód tożsamości (Teudat Zehut) | 9 cyfr | tak |
| ISBN-13 | 13 cyfr | nie (używa mod 10 z wagami 1 i 3) |
Co algorytm Luhna wykrywa, a co pomija
- Wykrywa: wszystkie błędy jednocyfrowe oraz większość (choć nie wszystkie) przestawień sąsiadujących cyfr.
- Pomija: przestawienie 09 ↔ 90 i kilka podobnych par. To kontrola literówek, a nie kontrola bezpieczeństwa.
- To nie jest zabezpieczenie. Numer prawidłowy według Luhna łatwo wygenerować. Walidacja numeru PAN w bramkach płatniczych opiera się na zakresach wydawców, kodzie CVV, systemie AVS i technologii 3-D Secure, a nie tylko na algorytmie Luhna.
Najczęściej zadawane pytania
Nie. Luhn sprawdza jedynie, czy numer jest poprawny matematycznie. Nie mówi nic o tym, czy karta została wydana, czy ma środki ani czy jest skradziona. Rzeczywista weryfikacja odbywa się u wydawcy podczas autoryzacji.
Tak, ostatnia cyfra to cyfra kontrolna i zawsze można ją tak dobrać, aby suma była podzielna przez 10. Właśnie tak działają generatory IMEI i testowe numery kart.
Wykrywa każde zastąpienie pojedynczej cyfry i większość przestawień sąsiadujących cyfr, ale kilka par (np. 09 ↔ 90) nie zmienia sumy kontrolnej. Bardziej odporne schematy (ISBN-13, Verhoeff, Damm) oferują większą wykrywalność błędów kosztem złożoności.
Walidator działa w całości w Twojej przeglądarce, więc nic nie jest przesyłane, ale wklejanie prawdziwych danych PAN gdziekolwiek, gdzie nie jest to konieczne, to zły nawyk. Podczas eksperymentów używaj numerów testowych (np. 4242 4242 4242 4242).
Luhn działa dla dowolnej długości, ale jest znormalizowany dla konkretnych schematów (zwykle 9–19 cyfr). Walidator nie ogranicza długości.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator EditorConfig
Wygeneruj plik .editorconfig z własnymi regułami stylu i rozmiaru wcięć, końca linii, kodowania i białych znaków, aby uzyskać spójne formatowanie w różnych IDE i edytorach.
Walidator adresów e-mail
Zweryfikuj adres e-mail: sprawdzenie składni RFC 5322, sprawdzenie rekordu MX w czasie rzeczywistym oraz szczegóły dotyczące części lokalnej, domeny i długości. Żadna wiadomość nie jest wysyłana.
Formatowanie HTML
Formatuj HTML lokalnie w przeglądarce, używając wcięć dwóch lub czterech spacji. HTML nie jest wysyłany ani walidowany.
Narzędzie jest dostępne w innych językach
- เครื่องตรวจสอบอัลกอริทึมของ Luhn [TH]
- Verificador del Algoritmo de Luhn [ES]
- Validador do Algoritmo de Luhn [PT]
- Luhn-algoritmens kontrollverktyg [SV]
- Luhnアルゴリズムチェッカー [JA]
- Vérificateur d'algorithme de Luhn [FR]
- Trình kiểm tra thuật toán Luhn [VI]
- أداة فحص خوارزمية Luhn [AR]
- Luhn-Algorithmus-Prüfer [DE]
- Luhn 알고리즘 검사기 [KO]
- Luhn-algoritme-checker [NL]
- Pemeriksa Algoritma Luhn [ID]
- Luhn Algorithm Checker [EN]
- Controllore dell'Algoritmo di Luhn [IT]
- Проверка по алгоритму Луна [RU]
- Luhn Algoritma Kontrolcüsü [TR]
- Luhn 算法校验工具 [ZH]