Low Level Magstripe Reading

Swipe swipe...data!


In order to get raw parsed data out of a magstripe reader, we first experiemented with a MAGTEK Centurion Keyboard Encoder (PN-21073062). We found that although we could get all 3 tracks of data, it was not possible to have it parsed out. We then purchased a raw magstripe decoder head with track 1 reading, the Omron V3A-6 (Datasheet here). By writing some parity checking code, we were able to read the raw data off of the magstripe, and parse it into output that would be 'typed out' as an emulated keyboard using a USB-enabled Teensy. An Arduino can also be used, and the data would be output as Serial which may also be useful.

Source code and some handy datasheets are on GitHub. Click Download Source to get the latest version.

We also suggest checking out StripeSnoop which despite being a couple years old, was extremely useful!

This project can only be used for card reading, not writing. There is no way to convert a card reader into a card writer.

So there I was...

So there I was, 5 days before HOPE (Hackers on Planet Earth) conference - getting ready for our booth that would be running all weekend. We had a similar booth at the previous HOPE, and it was pretty successful, one of the only things that hung us up was that we couldn't easily accept credit cards and the ATM had run out of money. We could take credit cards but it took a long time and was typo-ridden because everything had to be entered into a website. See, instead of a boxy terminal, we were using a Virtual Terminal - a website that allows you to enter in all the important data (card number, expiration, name, amount, etc).

Of course, the virtual terminal was secured with an SSL certificate and we were running it over a cellular connection NOT wifi! But despite being secure, we still had to type all the data into the form and even one tiny mistake means starting over from the beginning!

Last updated on Nov 20, 2015 Published on Apr 21, 2013