发新帖我要提问
12
返回列表
打印

请教门禁考勤系统有效卡识别算法

[复制链接]
楼主: zhaoem82
手机看帖
扫描二维码
随时随地手机跟帖
21
zhaoem82|  楼主 | 2007-1-11 14:35 | 只看该作者 回帖奖励 |倒序浏览

ID卡号能自己修改吗?

这样门禁系统不是一点安全性都没有了,随便找张卡改改就能开门,不会是这样吧,好像是卡号是出厂时就固化了不能修改.你所说的是不是IC卡,IC卡就能修改,ID卡不行

使用特权

评论回复
22
zhaoem82|  楼主 | 2007-1-11 14:43 | 只看该作者

回21楼,这样可能灵活性就差了

如果用户后来要追加添卡也一样要重新排序,还有机器买出后可能就很难控制使用者怎样使用了,你没可能叫用户买一大批卡待用,最多只能叫他多要一点备用,还是有可能要追加添卡的

使用特权

评论回复
23
xwj| | 2007-1-11 14:48 | 只看该作者

呵呵,21楼明显的外行,别理他

使用特权

评论回复
24
zhaoem82|  楼主 | 2007-1-11 14:58 | 只看该作者

没关系,同样感谢他!

使用特权

评论回复
25
IC1008| | 2007-1-11 14:59 | 只看该作者

还是采用我说的方法吧

A储存空间进行储存卡信息,不用排序的
B储存空间存储排序信息

增加一个卡信息,只需要在A空间末端增加卡信息

对B储存空间要进行更新,没有办法
在排序空间每个卡占用两个字节的信息

使用特权

评论回复
26
zhaoem82|  楼主 | 2007-1-11 15:05 | 只看该作者

还是这方法有效,谢谢IC1008!

使用特权

评论回复
27
xwj| | 2007-1-11 15:09 | 只看该作者

嗯,分为批量授权和少量补充授权,确实是个好办法

使用特权

评论回复
28
qinyp| | 2007-1-11 22:12 | 只看该作者

re

可以将卡号转为16进制,不必全部保存,一般根据低字节(如3个字节,或者再少点,比如20位、18位等),再用位存储判断的方法即可,这样两张卡占据一个位的概率还是很小的,关键是判断比较快,读卡号、计算、读一个FLASH字节、判断字节中某位即可

使用特权

评论回复
29
IceAge| | 2007-1-12 00:52 | 只看该作者

同意楼上qinyp的建议

去看看 harsh 算法以及 harsh table 吧,很出名的算法.

使用特权

评论回复
30
zhaoem82|  楼主 | 2007-1-12 09:50 | 只看该作者

好的,谢谢大家!

使用特权

评论回复
31
lypd96| | 2007-1-12 09:51 | 只看该作者

RE:

28楼的方法是好,但实际中不好用,如只保存1000张卡就可以了,一般每张卡保存4个字节,只要4K字节存储器就够用了,但按28楼的方法即使每张卡保存18位,也就是要2的18次方=262144个位,要32768个字节才能保存.


楼主是只比较1000张卡,其实可以不用什么算法也就很快比完数据,我做过实验,就是保存了8000张卡(每张卡保存4个字节的数据)在FLASH中,用51MCU,44MHZ的晶振,读数据和比较完8000张也就用了不到1.5S的时间.方法就是(读一个字节比较一个字节,而不是一次读完4个字节后再比较,比较数据时从最低一个字节的数据开始,这样可以省下很多时间)先读存储器中保存的第一张卡的最低一个字节的数据,而后和刚才读到卡的数据最低一个字节比较相等,而后继续读卡剩下的字节,一直到比完4个字节的数据.只要其中一个字节不相等就直接读存储器中的第二张卡的数据,一直到读完8000张卡为止.

使用特权

评论回复
32
zhaoem82|  楼主 | 2007-1-12 10:14 | 只看该作者

这个也是好办法!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则