**Algorithm::CheckDigits - Perl extension to generate and test check digits**

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT

**Algorithm::CheckDigits::MXX_003 - compute check digits for DEM**

ALGORITHM The algorithm is a variation of the Verhoeff scheme. 0 All letters are changed to numbers. 1 All digits are permutated according to a permutation table. 2 The permutated digits are combined using a diëder table. The first with the second, t...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M11_011 - compute check digits for VAT Registration Number (NL)**

This VATRN has 12 "digits", the third last must be a *B*, the fourth last is the checkdigit. I don't know anything about the meaning of the last two digits. You may use the whole VATRN or only the first eight digits to compute the checkdigit with thi...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M10_011 - compute check digits UPS (US)**

ALGORITHM 1 Beginning left all numbers are weighted alternatively 1 and 2. 2 The sum of all products is computed. 3 The sum of step 3 ist taken modulo 10. 4 The check digit is the difference between 10 and the number from step 3. METHODS is_valid($nu...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M11_004 - compute check digits for CPF (BR), Título Eleitoral (BR)**

ALGORITHM 1 From left to right all digits are multiplied with their position in the sequence. 2 The sum of all products is computed. 3 The sum of step 2 is taken modulo 11. a) If the result is 0 or 1 the checkdigit is 0 b) otherwise the checkdigit is...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::MXX_002 - compute check digits for CAS**

ALGORITHM 1 Beginning right with the second digit all digits are weighted ascending starting with 1. 2 The sum of those products is computed. 3 The checksum is the last digit of the sum from step 2 (modulo 10). METHODS is_valid($number) Returns true ...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M11_001 - compute check digits for ISBN, ISSN, VAT RN (PT), HKID (HK), Wagon number (BR), NHS (GB), VAT (SL)**

ALGORITHM 1 The sequence of digits is processed right to left. Every digit is multiplied with their position in the sequence (i.e. the digit left to the check digit has the weight 2 then 3 etc.). With a Hongkong ID (hkid) the leftmost char is replace...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M11_003 - compute check digits for PKZ (GDR)**

ALGORITHM 1 The checkdigit is set to 0. 2 From right to left the digits are weighted (multiplied) with 2,4,8,5,10,9,7,3,6,1,2,4. 3 The products are added. 4 The sum of step 3 is taken modulo 11. 5 The value of step 4 is added to a multiple (0..9) of ...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M10_002 - compute check digits for CINS (US), SIREN (FR), SIRET (FR)**

ALGORITHM 1 Beginning right all numbers are weighted alternatively 1 and 2. 2 The total of the digits of all products is computed. 3 The sum of step 3 ist taken modulo 10. 4 The check digit is the difference between 10 and the number from step 3 take...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M09_001 - compute check digits for Euro notes**

ALGORITHM 1 Letters are replaced with their position in the alphabet ('A' = 1, ...). 2 The total of the digits of all numbers is computed. 3 This sum is taken modulo 9. 4 The check digit is the difference between 8 and the number of step 3. To valida...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M11_015 - compute check digits for ESR5 (CH)**

ALGORITHM 1 Beginning right all digits are weighted with the repeating sequence 2, 3, 4, 5, 6, 7. 2 The weighted digits are added. 3 The sum from step 2 is taken modulo 11. 4 The checkdigit is 11 minus the sum from step 3. If the difference is 11, th...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M16_001 - compute check digits for ISAN**

ALGORITHM 1 "a(1) = 16" "b(i) = a(i) % 17 +d(i)", where d(i) is the decimal value of the hexdigit at position *i*. "c(i) = b(i) % 16" "a(i) = c(i-1) * 2", for *i* greater than 1 2 Beginning left for each *i* = 1..16, "a", "b", "c" are computed. 3 The...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M97_002 - compute check digits for International Bank Account Number (IBAN)**

ALGORITHM 0 The IBAN number must be prepared. The first two letters and the checksum will be moved to the right end. The letters are substituted according to the substitute table and the checksum is set to '00'. 1 The whole number is taken modulo 97....

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M10_004 - compute check digits for 2aus5, EAN, ILN, ISBN13, NVE**

ALGORITHM 1 Beginning right all numbers are weighted alternatively 1 and 3 (that is the check digit is weighted 1). 2 The sum of all products is computed. 3 The sum of step 3 ist taken modulo 10. 4 The check digit is the difference between 10 and the...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M11_008 - compute check digits for VAT Registration Number (DK)**

ALGORITHM 1 Beginning left every digit is weighted with 2, 7, 6, 5, 4, 3, 2, 1 2 The weighted digits are added. 3 The sum from step 2 is taken modulo 11. 4 The number is valid if the sum from step 3 is zero (0). METHODS is_valid($number) Returns true...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M10_006 - compute check digits for Rentenversicherung (DE)**

ALGORITHM 1 The letter is replaced with a two-figure number appropriate to the position of the letter in the german alphabet. 2 Beginning left all numbers are weighted with 2,1,2,5,7,1,2,1,2,1,2,1. 3 The the total of the digits of all products is com...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::MXX_004 - compute check digits for VAT RN (AT)**

ALGORITHM 1 Beginning right all numbers before the check digit are weighted alternatively 1 and 2. 2 The total of the digits of all products is computed and then subtracted from 96. 3 The check digit is the sum of step 3 taken modulo 10. METHODS is_v...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M11_009 - compute check digits NRIC (SG)**

ALGORITHM 1 Beginning left every digit is weighted with 2, 7, 6, 5, 4, 3, 2 2 The weighted digits are added. 3 The sum from step 2 is taken modulo 11. 4 The checkdigit is 11 minus the sum from step 3 converted to a character according to the followin...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M43_001 - compute check digits for Code-39**

ALGORITHM 1 After replacing all non numeric letters with their respective values, the sum of all numbers is computers 2 The checkdigit is the sum from step 1 taken modulo 43. METHODS is_valid($number) Returns true only if $number consists solely of n...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT**Algorithm::CheckDigits::M23_001 - compute check digits for DNI (ES)**

ALGORITHM 1 The checkdigit is the whole number taken modulo 23 and coded according to a keytable. METHODS is_valid($number) Returns true only if $number consists solely of numbers and the last digit is a valid check digit according to the algorithm g...

MAMAWE/Algorithm-CheckDigits-v1.3.2 - 16 May 2016 13:08:12 GMT