2015-09-01 22 views
-1

我正在开发一个用Java语言设计的生物识别考勤系统,用于digitalPersona设备的MySQL。但是在指纹验证期间,每当它显示不同的数据时,我都会从数据库中检索指纹数据(即BLOB)。最终结果显示“未验证”。以下是我为验证写的代码。指纹验证在DigitalPersona中不适用于Java,MySQL

 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(); 
     } 

每次我扫描了我的手指输出来像使用

指纹识别器,扫描指纹。

名称:从数据库阿马尔

指纹数据:[B @ 872ebe

名称:从数据库阿玛尔

指纹数据:[B @ f029f6

名称:阿玛尔

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

名称:从数据库阿马尔

指纹数据:[B @ bc2ca4

名称:阿玛尔从数据库

指纹数据:[B @ 6d7f85

+0

可能的重复[如何打印我的Java对象而不会得到“SomeType @ 2f92e0f4”?](http://stackoverflow.com/questions/29140402/how-do-i-print-my-java-object- without-getting-sometype2f92e0f4) –

+0

显示你的'getRecords'方法。 – zulq

+0

public ResultSet getRecords(String query,Connection conn)throws SQLException { \t \t this.conn = conn; \t \t try { stmt = conn.createStatement(); result = stmt.executeQuery(query); (例外se){ System.out.println(“未找到Sql连接”); se.printStackTrace(); }
返回结果; } –

回答

0

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

+0

谢谢!我也尝试过这种方式,但又不验证手指。如果我将指纹模板存储在“.fpt”文件中,并在验证之前从该文件加载数据,那么它工作正常。但我想从数据库中加载它。 –