所以我有这个从互联网上买的磁卡读卡器(通用)(它是中文的)问题是它有一个手册,但它是中文的(哈哈哈)所以我不明白...我有两台 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 的跨平台驱动程序就太好了)。
谢谢。
答案1
首先查看维基百科关于磁条卡的文章,描述了常见的数据布局。
您的读卡器设计为第 2 轨,这意味着它可以读取一系列数字和特殊字符。从产品页面,该设备在您的系统上显示为键盘并输入它看到的字符。因此,刷卡时看到的信息正是存储在卡第 2 轨上的信息。在这种情况下,它看起来像您的客户 ID 号,没有其他信息。
为了获得更多有趣的信息(例如姓名),你可以尝试在阅读器内放置一个物理垫片这样磁头就可以读取第 1 轨。但是,如果硬件只知道如何解码第 2 轨,这可能不起作用。
要以编程方式读取设备,您可以像使用全键盘一样使用 stdin。开源 StripeSnoop 项目早已停产,但您仍然可以从中获取一些不错的提示。磁条技术很长时间没有改变。Hack a Day 也有一些关于信用卡的不错链接。