我正在使用 android studio 开发一个应用程序,该应用程序用于使用指纹考勤,我希望能够使用桌面应用程序注册用户的指纹,并且指纹将从物理指纹读取器注册,从中加密的数据将存储在mysql数据库。所以我希望用户使用他们的带有指纹传感器的安卓手机来响应考勤。实际上我不知道是否可以比较来自 android 手机的加密指纹和来自物理指纹读取器的加密指纹。
我需要的只是关于这两种数据源之间加密或比较的想法。谢谢
我正在使用 android studio 开发一个应用程序,该应用程序用于使用指纹考勤,我希望能够使用桌面应用程序注册用户的指纹,并且指纹将从物理指纹读取器注册,从中加密的数据将存储在mysql数据库。所以我希望用户使用他们的带有指纹传感器的安卓手机来响应考勤。实际上我不知道是否可以比较来自 android 手机的加密指纹和来自物理指纹读取器的加密指纹。
我需要的只是关于这两种数据源之间加密或比较的想法。谢谢
据我了解,您正在尝试开发具有两端的应用程序。
一种用于从桌面应用程序进行指纹注册。
一种用于将指纹与来自 Android 设备的个人的探测指纹进行匹配。
正如@Michael 明确指出的那样,看看你想要实现的目标几乎是不可能的。
答案有点详细。(无聊但详细的东西)
对于注册部分,如果您使用物理指纹读取器,该设备肯定会为您提供指纹图像以及一些指纹的 ISO 模板,其名称应由您保持唯一,并且其名称可以存储在数据库中。让我们将此 ISO 称为图库 ISO。
对于验证部分,有两种方法。1:1 指纹匹配(该人首先声称自己是某人并将他/她的指纹放在验证设备上以确认该声明)和 1:N 指纹匹配(该人不告诉您的验证系统他/她是谁,但只需将他/她的指纹放在设备上,系统就会搜索可能的指纹匹配)
Android 设备存储了一个 API 无法访问的指纹,您所能实现的只是一个 YES 或 NO。指纹是否已在设备中注册。
您将必须使用连接到 USB OTG 到 android 设备的相同物理扫描仪,如果物理扫描仪提供 SDK 以支持 android 设备,那么很好,否则您不能只从任何其他扫描仪获得相同的 ISO 模板。
但是有一个标准模板,大多数扫描仪都会生成它。
类似于 ISO-19794-2/FMR
验证结束时生成的 ISO 称为(PROBE ISO)。您的指纹扫描仪 SDK 将真正为您提供如下功能:
long score = CompareISOs(byte[] GalleryISO,byte[] ProbeISO);
“分数”给出了一个值,它告诉您扫描仪对两个 ISO 模板相同的信心有多大,SDK 还必须为您提供一个阈值,例如 800。
所以如果比较后的任何时间得分大于800。你有一个匹配。
这是 1:1 验证。
one-to-n 是一项更繁重的任务,需要像 ABIS 这样复杂的 SDK。我将作为研究课题留给你。
希望我的回答对你有所帮助。我提出了这个问题并决定回答,因为您确实提出了一些想法。我希望这可以帮助您开始对指纹的研究。
赞!