用RFID扫描仪+ Java编程?

时间:2011-07-13 17:07:30

标签: java authentication rfid

我正在尝试构建一个围绕RFID构建的简单身份验证系统。基本上我有一台旧电脑,我想买一台USB RFID扫描仪。但是,我没有这方面的经验,所以我不确定我想买什么。

基本上我正在寻找一些希望带有某种API的东西,这些API允许我用RFID卡登录用户。有人能推荐我一个很好的设备/资源来实现这个目标吗?

4 个答案:

答案 0 :(得分:2)

尚未对其进行测试,但您可能需要查看此内容:Java-RFID Programming library

它应该是:

  

使用德州仪器(TI)和Microchip RFID套件测试RFID套件不可知的API。

如果没有别的,SourceForge上的代码可用,因此您可以查看。

更好的方法可能是提出一个特定的扫描仪,然后检查可用的支持(它们可能提供自己的库,手册等)。谷歌搜索找到这篇文章,例如:RFID Reader for Samsung VLAC-G1/VLAC-Alpha readers(用C ++编写,但移植它应该不是问题)。

答案 1 :(得分:1)

我只涉足RFID,但从我所看到的情况来看,大多数RFID系统都非常昂贵(特别是固定的RFID系统)。使用标准MSR或条形码类型的系统可能会更好。 RFID肯定有它的好处,因为它可以是无触摸的。但是,既然你提到使用“旧电脑”,听起来你就是这样做的爱好项目。如果是这样,我的建议是采用更简单的方式开始并封装设备接口逻辑,以便您可以支持各种类型的设备,而不是要求用户投资RFID。

如果您决定使用RFID,您可以尝试寻找支持将数据作为键盘输入(HID接口)返回或支持UnifiedPOS标准的RFID阅读器。我的理解是,UnifiedPOS对RFID的支持是相当新的,所以你可能找不到支持它的很多模型。

答案 2 :(得分:1)

在我的工作场所,我们最近对RFID硬件进行了一些研究。我们发现大多数设备都有自己的API和SDK。如果他们支持您的编程语言,您应该检查供应商的网站。因为我们也使用Java编程,所以并非所有设备制造商都支持Java,这令人惊讶。我已经完成了一些修复安装的读者的工作。他们中的大多数在以太网之上使用供应商特定的协议,因此您可以通过套接字直接(艰难的方式)或与供应商制造的SDK(这更容易)与他们进行通信。这些修复安装的设备比登录卡大得多,但是可以将它们隐藏在家具下面。

我们还没有遇到过USB RFID阅读器。我的一位合作伙伴使用专为登录卡制作的RFID阅读器做了一些工作。据我所知,它使用的是USB,他必须编写一个小型软件,将卡片读取转换为键盘笔划,因此它实际上就像条形码阅读器,软件根本不知道RFID。

还可以购买配备RFID阅读器的便携式移动计算机。这些设备在Windows Mobile / CE上运行,因此您可以在其上安装自己的软件。遗憾的是,您无法直接在这些设备上使用Java。移动Windows版本有第三方JVM实现,但它们不是免费的。最好的选择是.NET和Visual C ++。

可悲的是,我可以说RFID设备价格昂贵。也许你不知道,但市场上有两种竞争RFID无线电标准:HF和UHF。这些RFID技术具有不同的优点/缺点。我想你也应该检查这些。

最近还有一些内置于某些Android手机的NFC技术。我想这项技术的设备更便宜,因为它们现在也已经内置到手机中。虽然据我所知,它们不兼容RFID。

答案 3 :(得分:1)

RFID认证是一个复杂的领域,我希望您的“简单”RFID系统不会用于保护真实或重要的资产/位置。如果您想了解真实情况,请试试MX5C-RFID。它似乎是不到100美元的好选择,你可以从ebay(Mifare Plus或Mifare DesFire)购买几张身份证。

如果您想要认真对待某些事情,请不要使用UHF RFID卡,因为它们很容易从远距离读取,并且不像MiFare那样提供数据加密。

如果你选择Mifare plus卡,请不要使用Mifare经典的复古兼容性。 Mifare classic更容易实现,但是非常脆弱且易于克隆。

为确保最高安全性,请在创建新卡时使用

  1. 更改您自己的密钥的所有制造商默认密钥
  2. 将卡片的UID(由制造商编写的只读存储库)保存到您的数据库中以白名单列出您提供的卡片。
  3. 读取减量计数器值并存储它,以便您可以在下次验证时比较计数器的预期值。
  4. 进行身份验证时,请执行以下操作:

    1. 阅读卡片的UID并根据您的数据库进行检查,看看您的卡片是否已经送达。如果不是,请拒绝身份验证
    2. 调用递减函数并检查递减计数器值是否符合数据库中的预期值。如果不是,请拒绝身份验证。否则,请保存减量计数器值以供将来验证。
    3. 使用卡的ID进行身份验证
    4. 您可以绕过任何这些建议,以使您的实施尽可能简单。但请记住,如果要进行严格的身份验证,您应该执行增量开发步骤来实现我上面提到的所有功能。由于开发人员的懒惰,大多数现代RFID识别系统都是一周,将简单的原型投入生产使用。