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
Generator konfiguracji webpack
Utwórz plik webpack.config.js dla webpacka 5 do czystego JavaScriptu, Reacta lub Vue: TypeScript, Babel, CSS lub Sass, obrazy, HtmlWebpackPlugin, serwer deweloperski i polecenie npm install.
Generator kolorów analogicznych
Twórz pięciokolorowe palety analogiczne z dowolnego koloru bazowego: klasyczną trójkę, dwie zewnętrzne barwy oraz wartości hex, RGB i HSL.
Generator fikcyjnych numerów telefonu
Generuj do 50 fikcyjnych numerów z oficjalnie zastrzeżonych zakresów w pięciu krajach.
Walidator OpenAPI
Wklej dokument OpenAPI lub Swagger w JSON albo YAML i sprawdź jego podstawową strukturę: pole wersji, obiekt info i paths, z czytelnymi błędami i ostrzeżeniami.
Kod na obraz
Wklej kod, ustaw motyw, kolory, rozmiar czcionki, odstępy, nagłówek i numery wierszy, sprawdź podgląd canvas i pobierz PNG. Renderowanie zwykłego tekstu, bez podświetlania składni.
Kreator diagramów ERD
Utwórz lokalnie diagram encja-relacja z maksymalnie 12 encjami, polami, relacjami i licznościami. Eksportuj Mermaid, SVG, PNG lub JSON.
Narzędzie jest dostępne w innych językach
- Luhnアルゴリズムチェッカー [JA]
- เครื่องตรวจสอบอัลกอริทึมของ Luhn [TH]
- Trình kiểm tra thuật toán Luhn [VI]
- Luhn-algoritme-checker [NL]
- Luhn 알고리즘 검사기 [KO]
- Vérificateur d'algorithme de Luhn [FR]
- Luhn-algoritmens kontrollverktyg [SV]
- Validador do Algoritmo de Luhn [PT]
- Verificador del Algoritmo de Luhn [ES]
- أداة فحص خوارزمية Luhn [AR]
- Luhn-Algorithmus-Prüfer [DE]
- Pemeriksa Algoritma Luhn [ID]
- Проверка по алгоритму Луна [RU]
- Luhn Algoritma Kontrolcüsü [TR]
- Luhn 算法校验工具 [ZH]
- Luhn Algorithm Checker [EN]
- Controllore dell'Algoritmo di Luhn [IT]