指纹验证在Java,MySQL中的DigitalPersona中不起作用

时间:2015-09-01 16:25:29

标签: java mysql

我正在开发Java的生物识别考勤系统,MySQL用于设备digitalPersona。但是在指纹验证期间,每当我显示不同的数据时,我从数据库中检索指纹数据(即BLOB)。最终结果显示"未经验证"。以下是我写的用于验证的代码。

       String query = "select * from employee";
        try {
            res = conn.getRecords(query, con);
            while(res.next()) {
                **System.out.println("Name : "+res.getString(1));**

                Blob data1 =res.getBlob("fingerprint");
                **System.out.println("Fingerprint data from DB: "+data1);**

                int blobLengh=(int)data1.length();
                byte data[]=data1.getBytes(1, blobLengh);

                DPFPTemplate t = DPFPGlobal.getTemplateFactory().createTemplate();
                t.deserialize(data);
                //setTemplate(t); 
                System.out.println("from DB: "+t);

                System.out.println("Current Finger: "+features);
                DPFPVerificationResult result;                    
                result = verificator.verify(features,t);                    
                updateStatus(result.getFalseAcceptRate());
                //System.out.println(result.isVerified());
                if (result.isVerified()){
                    System.out.println("The fingerprint was VERIFIED.");
                    System.exit(0);
                }
                else{
                    System.out.println("The fingerprint was NOT VERIFIED.");
                }
            }
        } catch (SQLException ex) {
            //Logger.getLogger(AlreadyRegisteredDetails.class.getName()).log(Level.SEVERE, null, ex);
            ex.printStackTrace();
        }

每次我扫描手指输出就像那样

使用指纹识别器扫描指纹。

姓名:amar

数据库中的指纹数据:[B @ 872ebe

姓名:amar

数据库中的指纹数据:[B @ f029f6

姓名:amar

数据库中的指纹数据:[B @ 1da6b61

姓名:amar

数据库中的指纹数据:[B @ bc2ca4

姓名:amar

数据库中的指纹数据:[B @ 6d7f85

1 个答案:

答案 0 :(得分:0)

查看文档,验证API的用法似乎是正确的。唯一可能的原因是FAR非常低。要确保问题,请将您的FAR设置为PROBABILITY_ONE并重复实验。如果您确实获得了“验证”结果,请将FAR慢慢降低到合理的值(至少为MEDIUM_SECURITY_FAR)。