Veridis Biometrics SDK 使用字符串验证

Veridis Biometrics SDK validating with strings

很抱歉做一个冗长的介绍,但这是我到目前为止所做的:

但是,问题是,我已经有另一个生物识别解决方案在工作,它用于将所有散列数据保存为 varchar2 数据类型而不是字节数组。所以,我的 table 已经有一个很难更改的 varchar2 列(管理方面)。

当然,我很高兴 Veridis 有这个 "CompareTo" 方法,它有一个重载允许我传递一个字符串作为参数。唯一的问题是它似乎不起作用。这是处理验证的位:

Private _modelo As BiometricTemplate
Private _valido As Boolean

Public WriteOnly Property ModeloBiometrico As String
    Set(value As String)
        _modelo = BiometricTemplate.Base64TemplateDecode(value)
    End Set
End Property

Private Sub OnSampleAcquired(device As 
                             Veridis.Biometric.IBiometricCaptureDevice, 
                             sample As Veridis.Biometric.BiometricSample) 
                             Implements Veridis.Biometric.ICaptureListener.OnSampleAcquired

    _valido = _modelo.CompareTo(New BiometricTemplate(sample)).Match

End Sub

这在 saving/validating 一根手指时有效,但如果我像字节数组那样保存多根手指,验证将不起作用。这里有什么问题?

好的,如果这对将来的任何人有用,这就是我解决这个问题的方法。

短版:

SDK 实际上总是仅保存一个3 个样本 相同 手指!

长版:

首先,我以为我正在收集我输入的 3 个手指中的每一个的 1 个样本。它从来没有验证过我,所以我在 Whosebug 上提出了这个问题。

事实是,在尝试了整整一天其他方法之后,我发现我输入的第二根手指正在被验证。这让我很奇怪,经过几次测试,结果证明它只真正验证了第二根手指。

总结之后,很明显我应该在开始另一个手指之前输入同一个手指的 3 个样本。

这很奇怪,因为如果你只保存一根手指,它会占用一个样本,这就是它(虽然哈希码大于3个样本,这一点都不好,但那是另一回事).