Thanks for the example Peter. Thought I would ask (in case I've missed
something simple!) about a couple of scenarios where this algorithm might be
used.


Scenario: I am a call centre operator taking an account number over the
phone.

Use: When we informed customers of their Account numbers we gave them
6-digit numbers instead of 5, this allows us to check (when we try to
retrieve their details) that the account number we typed in is a) valid, b)
most likely to be the one they told us.


Scenario: I am a data entry operative with a whole pile of forms to key in
with survey information about people's height and weight.

Use: Check digits cannot be used for this type of information.


Scenario: I am a data entry operative with a whole pile of forms to key in
with encoded survey responses.

Use: Because we were clever when we set the survey, the responses already
contain a calculated check-sum digit which allows validation on entry.



To me at least, these all seem slightly different from a MOD10 check on a CC
number where the check sum is always 0 rather than an extra digit that is
included with the number. Am I following along correctly?

Thanks,

Peter




-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Behalf Of Peter J. Farrell
Sent: 04 March 2005 21:03
To: [email protected]
Subject: Re: [CFCDev] Verhoeff Check Digit CFC Released


Roland Collins wrote:

>Looks wonderful . . . now what is it good for?  Examples?  Use cases?
>Honestly - I have no idea what this does at this point!
>
>Roland
>
>
Sorry, I haven't replied sooner.  Had to deal with the entire Vonage
network going down as I used it get all my US client calls to me here in
Canada.

Well, I should have explain check digits a little better in my post.  A
check digit is a type of redunancy check and is used for error
detection.  It is like a binary checksum for decimal equivalents.  A
check digit is mathematically computed based on a numerical string and
usually appended to the end of the original string.  Any change to the
numerical string (including the check digit) would result in a different
check digit.

Some other famous schemes that use check digits are:
- UPC (weight factor of 3 using MOD 10)
- ISBN (aka MOD 11)
- MOD 10 (weight factor of 3 - used with Credit Cards)(aka Luhn
algorithm and IBM check)
- EFT (electronic funcs transfer - uses weighted positions with 3, 7 and
1 - it's MOD 10 varient)
- VIN (vehical identification number)
- Most State DLs

Example with Verhoeff check digit scheme:
Original Str = 123
Check = 3
Completed Str = 1233

But if I made a mistake (a transposition error) and entered:
Original Str = 132
The computed check would be: 0
Complete Str = 1320

For instance, one project of mine uses the Verhoeff check digit on the
end of company account numbers.  This helps our tech support enter
account numbers correctly and pulling up the proper information the
first time.  If you were to use auto incremented number from a DB for an
identification number, check out the problem below:

#10000
#10001
#10002
#10003
#10004
#10005

It might be easy to key one of those numbers incorrectly.  With the
check digit included:

#10000 = #100005
#10001 = #100014
#10002 = #100022
#10003 = #100033
#10004 = #100046
#10005 = #100051

I should note that the Verhoeff scheme is, in my opinion (and many
mathematicians - which I am not one), the strongest check digit scheme
currently available.  It catches most entry errors - avoiding almost all
the weaknesses of MOD 10 and it's varients.  A check digit is useful for
any sort of account, invoice and identification  numbers of any sort.
It provides another layer of redunancy check especially when dealing
with number that are prone to human entry errors.

.Peter
 "Follow the gourd!  No, Follow the sandal!"

--

----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email to
[email protected] with the words 'unsubscribe cfcdev' as the subject of the
email.

CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting
(www.cfxhosting.com).

An archive of the CFCDev list is available at
www.mail-archive.com/[email protected]


----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email to 
[email protected] with the words 'unsubscribe cfcdev' as the subject of the 
email.

CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting 
(www.cfxhosting.com).

An archive of the CFCDev list is available at
www.mail-archive.com/[email protected]

Reply via email to