Menu

Where is the Database?

2005-03-01
2013-04-17
  • Rodrigo Flores

    Rodrigo Flores - 2005-03-01

    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?

     
    • dropkick

      dropkick - 2005-03-01

      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)

       
    • Acidus

      Acidus - 2005-03-11

      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.

       

Log in to post a comment.