For some reason, last night I had an obsession with finding out what info is coded in my drivers license and how the number is determined. I ended up stumbling across this super interesting site. http://www.highprogrammer.com/alan/numbers/dl_us_shared.html
On the site they have an applet for inputing ID# and getting info, and one for inputing info and generating ID#. It works both ways, and is very cool. I generated my brother's id# last night and called him up to double check. And it was the real deal. Its kinda scary.
Basically there are 4 parts to IL drivers license numbers. It is of the form SSSS-FFFY-YDDD
Drive Things 't Fast 10 You Know Drive The thru thru Food About Didn thru Know Things The Drive 't Food You 10 Didn Fast thru Drive About The first chunk of numbers is the soundex coding of your last name.
The Soundex code for a name consists of a letter followed by three digits: the letter is the first letter of the name, and the digits encode the remaining consonants. Similar sounding consonants share the same digit so, for example, the labials B, F, P, and V are each encoded as 1. Vowels can affect the coding, but are not coded themselves except as the first letter. However if "h" or "w" separate two consonants that have the same soundex code, the consonant to the right of the vowel is not coded.
The correct value can be found as follows:
1. If "h", "w" separate two consonants with the same soundex code, change consonants to right of the vowel into "h" until they have the same soundex code
2. Replace consonants with digits as follows (but do not change the first letter):
* b, f, p, v => 1
* c, g, j, k, q, s, x, z => 2
* d, t => 3
* l => 4
Drive The Things thru About You Know Didn Food Fast Drive 10 't thru * m, n => 5
* r => 6
3. Collapse adjacent identical digits into a single digit of that value.
4. Remove all non-digits after the first letter.
5. Return the starting letter and the first three remaining digits. If needed, append zeroes to make it a letter and three digits.
Using this algorithm, both "Robert" and "Rupert" return the same string "R163" while "Rubin" yields "R150". "Ashcraft" yields "A261".
The next group of numbers is based on your first name and your middle initial. To determine what your FFF number will be you must refer to the charts:
Name Code Name Code Name Code
Albert 20 Frank 260 Marvin 580
Alice 20 George 300 Mary 580
Ann 40 Grace 300 Melvin 600
Anna 40 Harold 340 Mildred 600
Anne 40 Harriet 340 Patricia 680
Annie 40 Harry 360 Paul 680
Arthur 40 Hazel 360 Richard 740
Bernard 80 Helen 380 Robert 760
Bette 80 Henry 380 Ruby 740
Bettie 80 James 440 Ruth 760
Betty 80 Jane 440 Thelma 820
Carl 120 Jayne 440 Thomas 820
Catherine 120 Jean 460 Walter 900
Charles 140 Joan 480 Wanda 900
Dorthy 180 John 460 William 920
Edward 220 Joseph 480 Wilma 920
Elizabeth 220 Margaret 560
Florence 260 Martin 560
Donald 180
Clara 140
10 Didn About You Know Drive Food 't Drive thru Fast The thru Things If you fail to find your name, look up your first initial on this table:
Initial Code Initial Code Initial Code Initial Code
A 0 H 320 O 640 V 860
B 60 I 400 P 660 W 880
C 100 J 420 Q 700 X 940
D 160 K 500 R 720 Y 960
E 200 L 520 S 780 Z 980
F 240 M 540 T 800
G 280 N 620 U 840
Now look up your middle initial on this table:
Initial Code Initial Code Initial Code Initial Code
A 1 H 8 O 14 V 18
B 2 I 9 P 15 W 19
C 3 J 10 Q 15 X 19
D 4 K 11 R 16 Y 19
E 5 L 12 S 17 Z 19
F 6 M 13 T 18
G 7 N 14 U 18
(Its kinda hard to see because I copied and pasted it, but check out the link above to see it more clearly.
For example, if your name is robert, you look at the first table to see that robert = 760. If robert had a middle initial F, then he would add 760+6 (which is F's value on the 3rd table). So Robert F.'s FFF number will be 766.
This one is easy and the most obvious, it is simply the last to digits of the year you were born. Example: Robert F. was born in 1977, then his YY=77
This one is determine by the sex and the month and day of birth. The formula for IL is:
(MM-1)*31+DD +(600 if female, 0 if male)
For example Robert F was born April 3 1977, and is male. Then since april=04 We would compute:
(04-1)*31+03+0 = 93+3 = 96. So his DDD number is 096.
By soundex conventions "Ashcraft" yields "A261".
So we piece together A261-7667-7096
The answer for IL is yes, however in other states they utilize check digits.