TXT · Text & Data tools

Verhoeff Algorithm Calculator

Values to check
Result
Verhoeff (dihedral)scheme0values0valid0invalid0unreadable

Catches every single-digit error and every adjacent transposition.

Open the full check digit validator with Luhn, IBAN, ISBN, GTIN, VIN, ISIN, Verhoeff, and Damm

Shareable link

Settings are written to the URL as you change them. Nothing differs from the defaults yet.

Why the dihedral group

Every mod 10 scheme built on addition has the same blind spot: addition is commutative, so swapping two digits with the same weight changes nothing. Luhn inherits this and misses the 09 to 90 swap.

Verhoeff replaces addition with the group operation of the dihedral group of order 10, which is not commutative, and applies a position-dependent permutation before each step. Order starts to matter, and transpositions stop slipping through.

Verhoeff or Damm

Verhoeff needs three lookup tables: a 10 by 10 multiplication table, an 8 by 10 permutation table, and a 10-entry inverse table. Damm reaches the same detection strength with one 10 by 10 table and no inverse step, which makes it the easier one to implement without a mistake.

Pick either when you are designing an identifier people will type. Neither is a substitute for a hash or a signature, because both are public arithmetic that anyone can reproduce.

Frequently Asked Questions

Every adjacent transposition, including swapping 09 for 90, which Luhn misses. It also catches all single-digit errors and most twin and jump errors.

It walks the digits through the multiplication table of the dihedral group of order 10, applying a permutation that depends on each digit's position, then looks up the inverse of the result.

India's Aadhaar number is the best known deployment. It is a reasonable choice for any identifier a human will read aloud or retype.

Pages locked to one scheme

Full Check Digit Validator tool

Explore Our Tools

Browse all tools