There is a comma-seperated values file included with the program that maps the first 4 digits of a credit card to the issuing bank.(i.e. 4556,Citibank)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
No, the "Database" isn't hte CSV file, though those are part of it.
The database isn't a literally SQL RDMS database. It is a collection of attributes that make a card unique. IE, a card that has 4 fields on Track 2, whose first field is 4 characters long and = "1570", whose 3rd field is 2 character long and is ="00" whose first 6 charcters of the 4th field is "601770" is a Student ID from Georgia Tech (where I go to school).
When you swipe a card, Stripe Snoop tries to decode it into characters. It then runs that decoded card through a series of tests, trying to match the card to a predefined "fingerprint." This fingerprint is the set of attributes that define a card type. Once SS has found a match, it uses alots of info (such as the CSV files) to provide more information about the card.
In all current versions of SS, *every* card "fingerprint" was checked for a match. This is fine, but will scale horribly (imagine testing for 1000s of cards). Also, all these checks each take ~ 30 lines of code or so. The new version of SS does a much better job of looking up fingerprints.
If you are interested, Look in the source code to see these tests, In SS 1.6, they are in database.cpp. In SS 1.3-1.5 , they are in parser.cpp.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In the mail page, it says: "and then a CDDB-like database attempts to figure out what the contents mean."
This tool uses a centralized database?
There is a comma-seperated values file included with the program that maps the first 4 digits of a credit card to the issuing bank.(i.e. 4556,Citibank)
No, the "Database" isn't hte CSV file, though those are part of it.
The database isn't a literally SQL RDMS database. It is a collection of attributes that make a card unique. IE, a card that has 4 fields on Track 2, whose first field is 4 characters long and = "1570", whose 3rd field is 2 character long and is ="00" whose first 6 charcters of the 4th field is "601770" is a Student ID from Georgia Tech (where I go to school).
When you swipe a card, Stripe Snoop tries to decode it into characters. It then runs that decoded card through a series of tests, trying to match the card to a predefined "fingerprint." This fingerprint is the set of attributes that define a card type. Once SS has found a match, it uses alots of info (such as the CSV files) to provide more information about the card.
In all current versions of SS, *every* card "fingerprint" was checked for a match. This is fine, but will scale horribly (imagine testing for 1000s of cards). Also, all these checks each take ~ 30 lines of code or so. The new version of SS does a much better job of looking up fingerprints.
If you are interested, Look in the source code to see these tests, In SS 1.6, they are in database.cpp. In SS 1.3-1.5 , they are in parser.cpp.