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]
