Click here to load reader

Fingerprint Documentation

  • View
    54

  • Download
    0

Embed Size (px)

Text of Fingerprint Documentation

Table of ContentsIntroduction ....................................................................................... 2 Diagram ............................................................................................. 3Use Case ......................................................................................................... 3 Class Diagram ............................................................................................... 4 Sequence Diagram......................................................................................... 5Admin Registration ...................................................................................................... 5 User Registration .......................................................................................................... 6 Login ............................................................................................................................. 6

Flow Chart Diagram ..................................................................................... 7

Screen Shot ........................................................................................ 8 Reference ......................................................................................... 12 Appendix A: Source Code .............................................................. 13

Introduction

Biometric Login System is an application developed using Java Programming Language and Fingerprint SDK supported by GrFinger 1, this application is used to prevent any unauthorized parties to gain access to the system by using dual-layer of security protection which are username combined with password at the first layer and Fingerprint verification at the second layer. This application also protect users confidential data such as username and password from key Logger software which has capability of recording key stroke from keyboard, by implementing OSK (On-Screen Keyboard) user can enter their user name & password via virtual keyboard instead of real keyboard. MD5 Encryption is also being used to encrypt password which are stored in the database. During the development of this application, weve been using 3-tier architecture programming (K.,Channu, N.D.) concept to ensure user cannot directly connect to the database, but they can only connect via controller as the middle-man. This concept can improve security of the application, easy of future enhancement and more robust program. Out of the common functionalities, some additional functions such as ability to delete current account, register new administrator only by administrator, register new account, and analog clock feature were also implemented in the application to enhance users look-and-feel experience.

1

http://www.grfinger.com/

DiagramUse Case

Class Diagram

Sequence DiagramAdmin Registration

User Registration

Login

Flow Chart Diagram

Screen ShotMAIN SCREEN

y

This is main screen of the application, user can choose to login or register for new account. User also can select their status as Administrator or Normal User.

y

LOGIN

After their user name and password match, this screen will be shown to user as information.

y Fingerprint Scan Scan button is used to open image from file which contains fingerprint images, and after fingerprint image loaded to the panel, itll auto-extract until user press Login button for verification

Login Successful information after user passes both layer of protection, and users information will be retrieved from database and shown to user.

y Registration form This form is use to register new account for Administrator

y Registration Validation This message will pop out if the user name entered is already stored in database to prevent duplicated data and also invalid password verification error message to ensure the password is matched with the re-enter password.

y On-Screen Keyboard Built in OSK from windows to prevent data stolen by key logger malware

y

About Box

Referencesy Deitel, HM, Deitel, PJ 2004, Java How to Program, 6edn, Prentice Hall,USA. y Anon, Message Digest Algorithm 5 (MD5) , viewed at 01 October 2010, < http://en.wikipedia.org/wiki/MD5 > y Anon, MySQL Documentation, viewed at 28 September 2010, < http://dev.mysql.com/doc/refman/5.1/en/tutorial.html > y Liang,Daniel 2005, Introduction to Java Programming comprehensive version,5 edn,Prentice Hall,USA. y Kambalyal ,Channu N.D., 3-tier architecture, US. y guestd0cc01, 3-tier Architecture , viewed at 01 October 2010 < http://www.slideshare.net/guestd0cc01/3-tier-architecture >

Appendix A: Source Codey Login.java Classpackage Interface; /** * * @author Mr. Hendry */ import System.*; import com.griaule.grFinger.FingerprintTemplate; import java.awt.*; import java.awt.event.*; import java.awt.image.ImageProducer; import java.io.IOException; import java.sql.SQLException; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; public class Login extends JFrame implements ActionListener { //------ Declaration for fingerprint --------private JFileChooser chooser = new JFileChooser(); private int score; private Controller controller; private final int RESOLUTION = 300; private Fingerprint fingerprint = new Fingerprint(); private Image image; private FingerprintTemplate template; private int time = 0; private Timer scanTimer = new Timer ( 50 , this ); private int w = 400; private JPanel panelFinger, panelBiometric; private static int attemp = 0 , attempF = 0; private String password; private JMenu menuFile; private JMenuItem menuRegister, menuExit, menuAbout; private JComboBox cmbUserType; private JPanel upPanel, panelMain; private JLabel lblWelcome, lblInformation, lblLogin , lblUser,lblPass;

private JLabel imgUCTI; private JTextField txtUser; private JPasswordField txtPass; private JButton btnLogin ,btnCancel, btnOSK, btnSign, btnReset, btnBrowse; private JProgressBar proBar; private Clock myClock; private Timer timer = new Timer(1000, (this)); private Timer tmrScreen = new Timer (1 , (this)); private Timer tmrClose = new Timer (10 , (this)); public static void main(String[] args ) { Login app = new Login(); app.setSize ( 400 , 660); app.setLogin(app); } private void setLogin ( Login log ) { fingerprint.setLogin(log); } public Login() { this.setTitle("Login Screen"); this.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE); this.setVisible ( true); this.setLayout (null); fingerprint.start(); Container cp ; cp = this.getContentPane(); cp.setBackground(Color.white); //----- Setting Components ( JLabel , JButton ) ------lblInformation = new JLabel(); lblInformation.setBounds ( 450 , 10 , 500 , 50 ); lblWelcome = new JLabel ("WELCOME!"); lblWelcome.setFont(new Font ( "Magneto Bold" , Font.BOLD , 35)); lblUser = new JLabel ("User Name : "); lblPass = new JLabel ("Password : "); lblLogin = new JLabel("Login as : "); txtUser = new JTextField (15 ); txtPass = new JPasswordField (15); btnSign = new JButton ( "Login"); btnSign.setBounds ( 75 , 510 , 100 , 30 ); btnReset = new JButton ( "Reset"); btnReset.setBounds ( 200 , 510 , 100 , 30); btnLogin = new JButton("Login"); btnLogin.setBounds ( 520 , 510 , 100 , 30); btnCancel = new JButton("Cancel"); btnCancel.setBounds ( 645 , 510 , 100 , 30); btnOSK = new JButton (""); btnOSK.setIcon ( new ImageIcon ( getClass().getResource("Image/OSK.gif"))); btnOSK.setBounds ( 332 , 390 , 30 , 25 ); btnBrowse = new JButton ("Scan"); btnBrowse.setBounds ( 450 , 70 , 90 , 25);

proBar = new JProgressBar (); proBar.setBounds ( 550 , 70 , 280 , 25); proBar.setStringPainted(true); String userType[] = {"USER" , "ADMINISTRATOR cmbUserType = new JComboBox (userType); menuAbout = new JMenuItem("About"); menuFile = new JMenu("File"); menuRegister = new JMenuItem ( "Register User"); menuExit = new JMenuItem ("Exit"); menuFile.add(menuRegister); menuFile.addSeparator(); menuFile.add(menuAbout); menuFile.add(menuExit); JMenuBar bar = new JMenuBar(); bar.add(menuFile);

"};

//-------- Setting UCTI Icon ------Icon UCTI = new ImageIcon ( getClass().getResource( "Image/UCTI.gif")); imgUCTI = new JLabel(UCTI); //------- CLOCK/TIME Setting ------myClock = new Clock(); timer.start(); timer.addActionListener ( new ActionListener() { public void actionPerformed (ActionEvent e ) { Calendar myCalendar = new GregorianCalendar(); myClock.setHour(myCalendar.get(Calendar.HOUR)); myClock.setMinute(myCalendar.get(Calendar.MINUTE)); myClock.setSecond ( myCalendar.get(Calendar.SECOND)); } }); myClock.setBounds ( 155 , 150 , 70, 70); //----------- UPPER PANEL ( contains image & welcome ) Setting ---------upPanel = new JPanel(); upPanel.setBackground(Color.white); upPanel.setBounds ( 15 , 0 , 350, 315); upPanel.setLayout ( new FlowLayout(FlowLayout.CENTER , 0 , 15)); upPanel.add(lblWelcome); upPanel.add(imgUCTI); panelMain = new JPanel(); panelMain.setLayout(new FlowLayout(FlowLayout.CENTER, 20,20)); panelMain.setBounds ( 25 , 330 , 340 , 150); panelMain.setBackground(Color.white); panelMain.setBorder(BorderFactory.createLineBorder(Color.GRAY, 1)); panelMain.add(lblUser); panelMain.add(txtUser); panelMain.add(lblPass); panelMain.add(txtPass); panelMain.add(lblLogin); panelMain.add(cmbUserType);

panelFinger = new JPanel(); //panel to store fingerprint image

panelFinger.setBorder ( BorderFactory.createLineBorder(Color.BLACK)); panelFinger.setBounds ( 0 , 0 , 380 , 380); panelBiometric = new JPanel(); panelBiometric.setLayout ( null); panelBiometric.setBounds ( 450 , 100 , 380 ,380); panelBiometric.add(panelFinger); //--------- Register Event-Handing --------menuAbout.addActionListener(this); btnOSK.addActionListener (this); btnReset.addActionListener ( this); btnSign.addActionListe

Search related