好的,所以我开发了一个与Mifare Classic智能卡(非接触式)通信的应用程序。
该应用程序将用于会员识别。
当前方法是将16字节值写入卡的第4块。我将所有键保留为默认键(FF FF FF FF FF)。
但是,开发这种系统以使其更安全的正确方法是什么?我们应该使用卡的UID而不是将自己的用户ID写入数据块吗?
也有人可以解释如何使用按键等。
谢谢
最佳答案
如果您想识别某人,则可能希望保留ID以及个人数据(例如该人的姓名)的记录。根据您的应用目的,其他数据也可能很有趣。
记录个人数据的坏事是该卡可能会丢失,从而使该信息暴露给能够读取卡数据的人。因此,您应该更改卡的密钥以提高安全性。这样,想要检查卡中内容的第三个主题将必须首先找出键值,而且除了可能之外,这并不是一件容易的事。
要保护键值而不是对其进行硬编码,可以使用读取器设备中加载的表。一些读取器具有专用于存储键值的存储区(例如EEPROM),您要做的就是传递所需键的索引。
考虑系统的维护,我认为使用卡的UID不是一个好的选择。如果有人必须更换卡,则必须更新数据库。您的解决方案的优点是您完全不需要对卡进行任何设置...
因此,如果您不想在卡上记录任何数据,并希望使用其UID进行标识,则无需费心更改密钥。
希望有帮助!
关于c++ - Mifare SMART卡正确识别技术,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19182534/