Verhoeff algorithm using dihedral group D5 for superior error detection Validates identification numbers to detect transcription errors.
| Property | Value |
|---|---|
| Category | Checksums |
| Sub-category | Check Digit Validation |
| Security status | 🎓 Educational Only |
| Complexity | Intermediate |
| Inventor | Jacobus Verhoeff |
| Year | 1969 |
| Origin | 🇳🇱 Netherlands |
| Source | algorithms/checksum/check-digit.js |
Status: 🎓 Educational Only
| Issue | Description | Mitigation |
|---|---|---|
| Not Cryptographically Secure | Designed only for detecting accidental errors, not malicious attacks | — |
| Limited Security | Cannot protect against intentional manipulation by knowledgeable attackers | — |
6 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Rosetta Code: 2363 validates
| Field | Value |
|---|---|
input |
02030603 |
expected |
01 |
Vector 2 — Rosetta Code: 2369 does not validate
| Field | Value |
|---|---|
input |
02030609 |
expected |
00 |
Vector 3 — Rosetta Code: 123451 validates
| Field | Value |
|---|---|
input |
010203040501 |
expected |
01 |
Vector 4 — Rosetta Code: 123459 does not validate
| Field | Value |
|---|---|
input |
010203040509 |
expected |
00 |
Vector 5 — Rosetta Code: 1234567890120 validates
| Field | Value |
|---|---|
input |
01020304050607080900010200 |
expected |
01 |
Vector 6 — Rosetta Code: 1234567890129 does not validate
| Field | Value |
|---|---|
input |
01020304050607080900010209 |
expected |
00 |