Guest User

Untitled

a guest
Oct 22nd, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.20 KB | None | 0 0
  1. public class DigitalPersona {
  2.  
  3. public Connection cn() {
  4. Connection conn = null;
  5. try {
  6. Class.forName("com.mysql.cj.jdbc.Driver");
  7. conn = DriverManager.getConnection(
  8. "jdbc:mysql://localhost:3306/db_usuario?" + "useSSL=false&useTimeZone=true&serverTimezone=UTC",
  9. "root", "senha123");
  10. } catch (ClassNotFoundException | SQLException e) {
  11. e.printStackTrace();
  12. System.out.println("erro no conector");
  13. }
  14. return conn;
  15. }
  16.  
  17. public void insert(String nome, byte[] digital) {
  18. Connection conn = cn();
  19. try {
  20. PreparedStatement stat = conn.prepareStatement("INSERT INTO `tb_usuario`(`nome`,`digital`) VALUES (?, ?) ");
  21. stat.setString(1, nome);
  22. stat.setBytes(2, digital);
  23. stat.execute();
  24. } catch (SQLException e) {
  25. e.printStackTrace();
  26. System.out.println("erro");
  27. } finally {
  28. try {
  29. conn.close();
  30. } catch (SQLException e) {
  31. e.printStackTrace();
  32. }
  33. }
  34.  
  35.  
  36. }
  37.  
  38. public byte[] get() {
  39. ResultSet rs;
  40. PreparedStatement st;
  41. byte[] digital = null;
  42. try {
  43. st = cn().prepareStatement("SELECT * FROM tb_usuario");
  44. rs = st.executeQuery();
  45. if (rs.next())
  46. digital = rs.getBytes("digital");
  47. else
  48. System.out.println("Record not available");
  49.  
  50. } catch (Exception e) {
  51. System.out.println(e.getMessage());
  52. }
  53.  
  54. return digital;
  55. }
  56.  
  57. public void listReaders() {
  58. DPFPReadersCollection readers = DPFPGlobal.getReadersFactory().getReaders();
  59. if (readers == null || readers.size() == 0) {
  60. System.out.printf("There are no readers available.n");
  61. return;
  62. }
  63. System.out.printf("Available readers:n");
  64. for (DPFPReaderDescription readerDescription : readers)
  65. System.out.println(readerDescription.getSerialNumber());
  66. }
  67.  
  68. public static final EnumMap<DPFPFingerIndex, String> fingerNames;
  69.  
  70. static {
  71. fingerNames = new EnumMap<DPFPFingerIndex, String>(DPFPFingerIndex.class);
  72. fingerNames.put(DPFPFingerIndex.LEFT_PINKY, "left pinky");
  73. fingerNames.put(DPFPFingerIndex.LEFT_RING, "left ring");
  74. fingerNames.put(DPFPFingerIndex.LEFT_MIDDLE, "left middle");
  75. fingerNames.put(DPFPFingerIndex.LEFT_INDEX, "left index");
  76. fingerNames.put(DPFPFingerIndex.LEFT_THUMB, "left thumb");
  77. fingerNames.put(DPFPFingerIndex.RIGHT_PINKY, "right pinky");
  78. fingerNames.put(DPFPFingerIndex.RIGHT_RING, "right ring");
  79. fingerNames.put(DPFPFingerIndex.RIGHT_MIDDLE, "right middle");
  80. fingerNames.put(DPFPFingerIndex.RIGHT_INDEX, "right index");
  81. fingerNames.put(DPFPFingerIndex.RIGHT_THUMB, "right thumb");
  82. }
  83.  
  84. public DPFPTemplate getTemplate(String activeReader, int nFinger) {
  85. System.out.printf("Performing fingerprint enrollment...n");
  86.  
  87. DPFPTemplate template = null;
  88.  
  89. try {
  90. DPFPFingerIndex finger = DPFPFingerIndex.values()[nFinger];
  91. DPFPFeatureExtraction featureExtractor = DPFPGlobal.getFeatureExtractionFactory().createFeatureExtraction();
  92. DPFPEnrollment enrollment = DPFPGlobal.getEnrollmentFactory().createEnrollment();
  93.  
  94. while (enrollment.getFeaturesNeeded() > 0) {
  95. DPFPSample sample = getSample(activeReader, String.format("Scan your %s finger (%d remaining)n",
  96. fingerName(finger), enrollment.getFeaturesNeeded()));
  97. if (sample == null)
  98. continue;
  99.  
  100. DPFPFeatureSet featureSet;
  101. try {
  102. featureSet = featureExtractor.createFeatureSet(sample, DPFPDataPurpose.DATA_PURPOSE_ENROLLMENT);
  103. } catch (DPFPImageQualityException e) {
  104. System.out.printf("Bad image quality: "%s". Try again. n", e.getCaptureFeedback().toString());
  105. continue;
  106. }
  107.  
  108. enrollment.addFeatures(featureSet);
  109. }
  110. template = enrollment.getTemplate();
  111. System.out.printf("The %s was enrolled.n", fingerprintName(finger));
  112. } catch (DPFPImageQualityException e) {
  113. System.out.printf("Failed to enroll the finger.n");
  114. } catch (InterruptedException e) {
  115. throw new RuntimeException(e);
  116. }
  117.  
  118. return template;
  119. }
  120.  
  121. public boolean verify(String activeReader, DPFPTemplate template) {
  122.  
  123. try {
  124. DPFPSample sample = getSample(activeReader, "Scan your fingern");
  125. if (sample == null)
  126. throw new Exception();
  127.  
  128. DPFPFeatureExtraction featureExtractor = DPFPGlobal.getFeatureExtractionFactory().createFeatureExtraction();
  129. DPFPFeatureSet featureSet = featureExtractor.createFeatureSet(sample,
  130. DPFPDataPurpose.DATA_PURPOSE_VERIFICATION);
  131.  
  132. DPFPVerification matcher = DPFPGlobal.getVerificationFactory().createVerification();
  133. matcher.setFARRequested(DPFPVerification.MEDIUM_SECURITY_FAR);
  134.  
  135. for (DPFPFingerIndex finger : DPFPFingerIndex.values()) {
  136. // DPFPTemplate template = user.getTemplate(finger);
  137. if (template != null) {
  138. DPFPVerificationResult result = matcher.verify(featureSet, template);
  139. if (result.isVerified()) {
  140. System.out.printf("Matching finger: %s, FAR achieved: %g.n", fingerName(finger),
  141. (double) result.getFalseAcceptRate() / DPFPVerification.PROBABILITY_ONE);
  142. return result.isVerified();
  143. }
  144. }
  145. }
  146. } catch (Exception e) {
  147. System.out.printf("Failed to perform verification.");
  148. }
  149.  
  150. return false;
  151. }
  152.  
  153. public DPFPSample getSample(String activeReader, String prompt) throws InterruptedException {
  154. final LinkedBlockingQueue<DPFPSample> samples = new LinkedBlockingQueue<DPFPSample>();
  155. DPFPCapture capture = DPFPGlobal.getCaptureFactory().createCapture();
  156. capture.setReaderSerialNumber(activeReader);
  157. capture.setPriority(DPFPCapturePriority.CAPTURE_PRIORITY_LOW);
  158. capture.addDataListener(new DPFPDataListener() {
  159. public void dataAcquired(DPFPDataEvent e) {
  160. if (e != null && e.getSample() != null) {
  161. try {
  162. samples.put(e.getSample());
  163. } catch (InterruptedException e1) {
  164. e1.printStackTrace();
  165. }
  166. }
  167. }
  168. });
  169. capture.addReaderStatusListener(new DPFPReaderStatusAdapter() {
  170. int lastStatus = DPFPReaderStatusEvent.READER_CONNECTED;
  171.  
  172. public void readerConnected(DPFPReaderStatusEvent e) {
  173. if (lastStatus != e.getReaderStatus())
  174. System.out.println("Reader is connected");
  175. lastStatus = e.getReaderStatus();
  176. }
  177.  
  178. public void readerDisconnected(DPFPReaderStatusEvent e) {
  179. if (lastStatus != e.getReaderStatus())
  180. System.out.println("Reader is disconnected");
  181. lastStatus = e.getReaderStatus();
  182. }
  183.  
  184. });
  185. try {
  186. capture.startCapture();
  187. System.out.print(prompt);
  188. return samples.take();
  189. } catch (RuntimeException e) {
  190. System.out.printf("Failed to start capture. Check that reader is not used by another application.n");
  191. throw e;
  192. } finally {
  193. capture.stopCapture();
  194. }
  195. }
  196.  
  197. public String fingerName(DPFPFingerIndex finger) {
  198. return fingerNames.get(finger);
  199. }
  200.  
  201. public String fingerprintName(DPFPFingerIndex finger) {
  202. return fingerNames.get(finger) + " fingerprint";
  203. }
  204.  
  205. }
  206.  
  207. static EnumMap<DPFPFingerIndex, DPFPTemplate> templates = new EnumMap<DPFPFingerIndex, DPFPTemplate>(
  208. DPFPFingerIndex.class);
  209.  
  210. private Usuario usuario;
  211. private List<Usuario> listaUsuario;
  212.  
  213. static DigitalPersona dp = new DigitalPersona();
  214. static DPFPTemplate temp = dp.getTemplate(null, 1); // inicia um template nulo para futuramente ser preenchido com a biometria
  215.  
  216. public void salvar() {
  217. dp.listReaders();
  218. usuario.setBiometria(temp.serialize());
  219.  
  220. // se o usuario nao exite na lista
  221. if (!getListaUsuario().contains(getUsuario())) {
  222. //add usuario na lista
  223. getListaUsuario().add(getUsuario());
  224.  
  225. } else {
  226. // se ele existe na lista
  227. int posicao = getListaUsuario().indexOf(getUsuario());
  228. getListaUsuario().set(posicao, getUsuario());
  229. }
  230.  
  231. setUsuario(null);
  232. }
  233.  
  234. public Usuario getUsuario() {
  235. if (usuario == null) {
  236. usuario = new Usuario();
  237. }
  238. return usuario;
  239. }
  240.  
  241. public List<Usuario> getListaUsuario() {
  242. if (listaUsuario == null) {
  243. listaUsuario = new ArrayList<Usuario>();
  244. }
  245. return listaUsuario;
  246. }
  247.  
  248. public void setListaUsuario(List<Usuario> listaUsuario) {
  249. this.listaUsuario = listaUsuario;
  250. }
  251.  
  252. public void setUsuario(Usuario usuario) {
  253. this.usuario = usuario;
  254. }
Add Comment
Please, Sign In to add comment