【发布时间】:2018-09-14 10:55:54
【问题描述】:
我有一个应用程序即将更改,以便通过指纹验证用户。基本上,登录窗口将被重新设计,以丢失登录名和密码字段。窗口将取而代之,直到有人将他/她的手指放在连接到工作站的指纹扫描仪上。
由于大约有 50,000 个用户,他们的帐户数据存储在 Oracle 服务器中,问题是在 User 表中保存什么以及如何使用指纹数据而不是登录名/密码对来选择正确的用户?
【问题讨论】:
-
指纹扫描仪输出什么?只是一张照片,还是某种编码?无论它是什么,您都可以将其存储在数据库中,可能作为 BLOB。然后,您将需要一个算法来比较其中的 2 个并计算它们属于同一个人的可能性。 Oracle 不会提供,您需要提供它。
-
指纹扫描仪生成所谓的指纹模板,它是一个(对于我将使用的模型)384 字节的数组。由于 Oracle 现在将提供匹配算法,我知道我可以编写一个 PL/SQL 函数来计算它,但在这种情况下,说在选择期间不会使用任何索引是正确的,对吧?
-
Oracle 中可以有基于函数的索引。但我认为问题在于您不是在寻找精确匹配 (
fingerprint_column = :fingerprint_value),而是寻找最佳可能匹配 (max(match_probability(fingerprint_column, :fingerprint_value)))。因此,如果完全使用索引,您将完全扫描它们。 -
指纹比较是一个复杂的话题。可能对失败的身份验证没有耐心。你需要一个好的图书馆,可能在这里sourceforge.net/projects/sourceafis
标签: oracle fingerprint biometrics