Algorytm Luhna – algorytm służący do sprawdzania poprawności wpisania numeru. Jest on używany m.in. do walidacji numerów kart kredytowych, ciągów liczbowych itd. Nazwa algorytmu pochodzi od nazwiska Hansa Petera Luhna (1896–1964), niemieckiego naukowca pracującego w IBM, który opatentował mechaniczne urządzenie do sprawdzania poprawności numerów z cyfrą kontrolną.
Na końcu liczby doklejana jest cyfra kontrolna pozwalająca sprawdzić, czy poprzedzający ją ciąg cyfr jest wpisany poprawnie. Algorytm umożliwia wykrycie pomyłki pojedynczej cyfry lub większości zamian kolejności sąsiednich cyfr. Główną słabością jest niewykrywanie zamiany sekwencji 90 na 09 i odwrotnie. Algorytm nie wykryje także zamian par cyfr (22 ↔ 55, 33 ↔ 66 oraz 44 ↔ 77). Z zasady mnożenia przez 2 co drugiej cyfry wynika, że algorytm nie wykryje zamiany cyfr na niesąsiednich pozycjach, np. 1104942 i 1104249.
Algorytm Luhna stosowany jest także do ciągów alfanumerycznych po zamianie liter ABC ... XYZ na ciągi cyfr 10 11 12 ... 33 34 35. Cyfra kontrolna jest z zakresu 0..9. Używana jest także rozszerzona wersja algorytmu Luhna pod nazwą Luhn mod N algorithm stosowana do dowolnych ciągów alfanumerycznych. Cyfra, a raczej znak kontrolny jest jednym z N dopuszczalnych znaków.