如何构建 USB 驱动程序和数据提取器(磁卡读卡器)?

如何构建 USB 驱动程序和数据提取器(磁卡读卡器)?

所以我有这个从互联网上买的磁卡读卡器(通用)(它是中文的)问题是它有一个手册,但它是中文的(哈哈哈)所以我不明白...我有两台 Linux 机器(一个 Ubuntu 和一台 Fedora),如果你通过 USB 插入它,它就会开机,如果你传递一张卡(打开一个文本编辑器),你会得到一个类似于这样的代码/字符串:

1303031110012015¿999999999999999

显然,某处有卡信息(这是一张电影院附属卡),我想要做的是从该号码中提取信息(例如所有者的姓名和其他数据),如果我运行系统盘我得到了这样的信息:

读者拔掉电源:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04f2:b293 Chicony Electronics Co., Ltd 
Bus 007 Device 003: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth

读卡器已插入:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04f2:b293 Chicony Electronics Co., Ltd 
Bus 007 Device 003: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth
Bus 005 Device 005: ID 05fe:1010 Chic Technology Corp. Optical Wireless

我对 Python 和 Ruby 有所了解(Ruby 比 Python 多),但我不知道从哪里开始...如果有人能给我指明正确的方向就太好了..你能吗?(如果有适用于 Windows、Linux 和 Mac 的跨平台驱动程序就太好了)。

谢谢。

PS 这是我买的读卡器:http://dx.com/p/usb-universal-magnetic-stripe-credit-debit-card-bidirectional-track-2-swipe-reader-75-210bpi-25053

答案1

首先查看维基百科关于磁条卡的文章,描述了常见的数据布局。

您的读卡器设计为第 2 轨,这意味着它可以读取一系列数字和特殊字符。从产品页面,该设备在您的系统上显示为键盘并输入它看到的字符。因此,刷卡时看到的信息正是存储在卡第 2 轨上的信息。在这种情况下,它看起来像您的客户 ID 号,没有其他信息。

为了获得更多有趣的信息(例如姓名),你可以尝试在阅读器内放置一个物理垫片这样磁头就可以读取第 1 轨。但是,如果硬件只知道如何解码第 2 轨,这可能不起作用。

要以编程方式读取设备,您可以像使用全键盘一样使用 stdin。开源 StripeSnoop 项目早已停产,但您仍然可以从中获取一些不错的提示。磁条技术很长时间没有改变。Hack a Day 也有一些关于信用卡的不错链接。

相关内容