You might want to look at my disclaimer before using this information for anything important. You might want to see warning about fake ids before using this information to make a fake id.
I have an online program than can calculate New York State driver's license numbers (Prior to September 1992 only). Or you can download a copy of the software.
This information is entirely historic. In September 1992 New York state changed to a new system that I don't have any information about.
This information is derived from this web page, which is a homework assignement for some computer science class. The scans appear to be from some version of For All Practical Purposes.
The first character of the number is the first letter of the last name.
The next twelve digits are based on an encoding of letters from the name. The equation is based on the first three letters in the first name, the middle initial, and the second through fourth letters of the last name. These will be denoted F1, F2, and F3 for the first name, M1 for the middle initial, and L2, L3, L4, and L5 for the last name.
Take these letters and convert them to numbers. A letter that doesn't exist (because the name is too short, or the middle initial doesn't exist) is converted to 0. Otherwise convert A to 1, B to 2, and so on through Z to 26.
Now determine X by looking up the length of the last name on this table:
|Last Name Length||X|
|4 or more||385,829,132|
Now apply the following equation:
+ 371,538,441 L3
+ 13,779,585 L4
+ 510,355 L5
+ 19,657 F1
+ 729 F2
+ 27 F3
If the resulting number is not 12 digits long, add zeros to the left side until it is long enough.
The next three digits are the birth date and sex. Take the month as a number and denote it as m. Take the day of the month as a number and denote it as d. Take g and assign it 0 if for males, 1 for females. Now apply the following equation:
63m + 2d + g
Again, pad the left side with zeros if the number isn't three digits long.
The last two digits are the last two digits of the year of birth.
Finally, if this system would assign two or more people with the same digit, another digit is added before the year of birth digits. This digit is assigned (probably sequentially).
The constants in the name equation clearly have a pattern, but it's not a terribly obvious pattern. Each of the constants can be expressed in terms of one of the smaller constants. The pattern is similar, but not always identical.
Expanding down to the smallest level (27), we get the following, which isn't terribly enlightening:
+ (26×276 − 275 − 78×274 + 30×273 + 52×272 − 55×27 + 1) L2
+ (26×275 − 274 − 52×273 + 29×272 + 26×27 − 27) L3
+ (26×274 − 273 − 26×272 + 28×27) L4
+ (26×273 − 272 − 26×27 + 28) L5
+ (273 − 27 + 1) F1
+ (272) F2
+ (271) F3
+ (270) M1