⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 md5.java

📁 设计一个模拟的系统用户安全登录界面
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
import java.sql.*;
import java.applet.Applet;
import javax.swing.border.*;
import java.security.*;
import java.util.*;

public class md5 extends JFrame implements ActionListener{    
	public static void main(String args[]){        //主函数实现
		JFrame J=new md5();
		J.setSize(500,400);
		J.setVisible(true);
	    jiami();

	}
	public md5(){        //主界面实现如下:
		super("用户登录口令的安全认证实现");
	 	setResizable(false); 
		username=new JLabel("Username :");
		password=new JLabel("Password :");
		input1=new TextField(10);
		input2=new TextField(10);
		input2.setEchoChar('*');	
        add(Panel1);
	    add(Panel2);
	    add(Panel3);
	    input1.addActionListener(this);
	    input2.addActionListener(this);
	    setLayout(new GridLayout(3,3,0,0));
	    Panel1.setLayout(new FlowLayout());
	    Panel1.add(username);
	    Panel1.add(input1);
	    Panel2.add(password);
        Panel2.add(input2);
        Panel3.setLayout(new FlowLayout());
        Panel3.add(Bdenglu);
		Panel3.add(Bzhuce);
		Panel3.add(Bquxiao);
      	Bdenglu.addActionListener(this);
		Bzhuce.addActionListener(this);
		Bquxiao.addActionListener(this);
        Bdenglu.setFont(new java.awt.Font("SansSerif",0,13));  //登陆按钮功能实现
        Bdenglu.setForeground(Color.black);
        Bdenglu.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(ActionEvent e){
        		String B,D;
                B=input1.getText().trim();
                D=input2.getText().trim();
                md5 ur=new md5(B);
                String post1=ur.compute();
                md5 pw=new md5(D);
                String post2=pw.compute();
                dispose();
                if(input1.getText().trim().equals("")){
                	JOptionPane.showMessageDialog(null,"用户名不可为空!");
            		md5 xx=new md5();
            		xx.setSize(500,400);
            		xx.setVisible(true);
            	    return ;
                }
                if(input2.getText().trim().equals("")){
            	    JOptionPane.showMessageDialog(null,"密码不可为空!");
            		md5 xx=new md5();
            		xx.setSize(500,400);
            		xx.setVisible(true);
            	    return;
                }
            try{        //读取数据库中的数据	
            	String url="jdbc:odbc:mydata";	
                Connection con=DriverManager.getConnection(url,"",null);
                Statement stmt=con.createStatement();
                String sql="select * from Information ";
                rs=stmt.executeQuery(sql);
                boolean exist=true;
                while(rs.next()){
                	String s1=rs.getString("username");
           	        String s2=rs.getString("password");
                    System.out.println(s1+","+s2);
                    if(!post1.equals(s1)||!post2.equals(s2)){
                    	exist=false;
                    }
                    else{
                    	exist=true;
                    }
                    if(exist){
                    	JOptionPane.showMessageDialog(null,"亲爱的用户,您已成功登陆系统!");
                        break;
                    }
                }
                if(!exist){
                	JOptionPane.showMessageDialog(null,"用户名或密码错误,请重新填写!");
            	    md5 xx=new md5();
            		xx.setSize(500,400);
            		xx.setVisible(true);
                }
                stmt.close();
                con.close();
            }
            catch(SQLException ex){}	
            	}});
          Bzhuce.setFont(new java.awt.Font("SansSerif",0,13));//注册按钮功能实现
          Bzhuce.setForeground(Color.black);
          Bzhuce.addActionListener(new java.awt.event.ActionListener(){
          	public void actionPerformed(ActionEvent e){
          		dispose();
                register x=new register();
            	x.register();
            }});
          Bquxiao.setFont(new java.awt.Font("SansSerif",0,13)); //取消按钮功能实现
          Bquxiao.setForeground(Color.BLACK);
          Bquxiao.addActionListener(new java.awt.event.ActionListener(){
            	public void actionPerformed(ActionEvent e){
            		dispose();
           	}});}
public class register extends JFrame{     //注册窗口实现
  void register(){
    Label Nusername,Npassword,Npassword1,bt;
    final TextField Ninput1,Ninput2,Ninput3;
	Panel BT=new Panel();
	Panel uN=new Panel();
	Panel PN=new Panel();
    Panel PNN=new Panel();
    Panel SB=new Panel();
	JButton Subtt=new JButton("SUBMISSION");
	JButton Fdenglu=new JButton("HOME");
    Nusername=new Label("   Username :");
	Npassword=new Label("     Passwords :");
	Npassword1=new Label("Passwords Again :");
	bt=new Label("                        REGISTER WINDOW");
	bt.setFont(new java.awt.Font("SansSerif",0,20));
	Ninput1=new TextField(15);
	Ninput2=new TextField(15);
	Ninput2.setEchoChar('*');
	Ninput3=new TextField(15);
	Ninput3.setEchoChar('*');
	setLayout(new GridLayout(5,3,0,0));	
	   add(BT);
		add(uN);
		add(PN);
		add(PNN);
		add(SB);
		uN.setLayout(new FlowLayout());
		uN.add(Nusername);
		uN.add(Ninput1);
		PN.setLayout(new FlowLayout());
		PN.add(Npassword);
		PN.add(Ninput2);
	    PNN.setLayout(new FlowLayout());
		PNN.add(Npassword1);
		PNN.add(Ninput3);
		SB.setLayout(new FlowLayout());
		SB.add(Subtt);
	
		SB.add(Fdenglu);
	    BT.setLayout(new BorderLayout(20,30));
		BT.add(bt);
		setResizable(false);
		setSize(500,400);
		setVisible(true);
        Subtt.setFont(new java.awt.Font("SansSerif",0,13)); //提交按钮功能实现
        Subtt.setForeground(Color.black);
        Subtt.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(ActionEvent e){
        		String A,B,C,D;
            	A=Ninput1.getText().trim();
                C=Ninput3.getText().trim();
            	md5 md51=new md5(A);
            	String postString=md51.compute();
            	md5 md52=new md5(C);
            	String postString3=md52.compute();
                dispose();
            	String Nuser=Ninput1.getText();
            	String Npsw=Ninput2.getText();
            	String Npsw1=Ninput3.getText();
            	show y=new show();
            	tishi1 t=new tishi1();
            	tishi2 x=new tishi2();
                if(Nuser.equals("")||Npsw.equals("")||Npsw1.equals("")){
                	t.tishi1();
                }
           else if(Npsw.equals(Npsw1)){ //向数据库中加入数据
            		String url="jdbc:odbc:mydata";
                 	try{
            	      	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                	}catch(java.lang.ClassNotFoundException ev){
                		System.err.print("ClassNotFoundException :");
            		    System.err.println(ev.getMessage());}
            	try{    //向信息表中写入加密后的数据
            		Connection con=DriverManager.getConnection(url,"",null);
                    Statement stmt=con.createStatement();
                    stmt.executeUpdate("insert into Information(Username,Password)"+
                    "values('"+postString+"','"+postString3+ "')" );
                   	stmt.close();
                	con.close();
                }catch(SQLException ex){System.out.println(ex.getMessage());}
                x.tishi2();	}
              else  if(!Npsw.equals(Npsw1)){
              	y.tishi();}
              dispose();	
            }});
           Fdenglu.setFont(new java.awt.Font("SansSerif",0,13));//返回登陆窗口功能实现
           Fdenglu.setForeground(Color.black);
           Fdenglu.addActionListener(new java.awt.event.ActionListener(){
              public void actionPerformed(ActionEvent e){
            		dispose();
            		md5 xx=new md5();
            		xx.setSize(500,400);
            		xx.setVisible(true);
            	}});}}
 public class show extends JFrame{      //提示窗口实现
	void tishi(){
		Label onee;
	    Panel one1=new Panel();
	    Panel two=new Panel();
		onee =new Label("您输入的密码不一致,是否重新填写?");
		setLayout(new GridLayout(2,2));
		add(one1);
		add(two);
		one1.add(onee);
		two.setLayout(new FlowLayout(FlowLayout.CENTER,40,0));
		two.add(yes);
		two.add(no);
		setResizable(false);
		setSize(300,100);
		setVisible(true);
		yes.addActionListener(new java.awt.event.ActionListener(){
            	public void actionPerformed(ActionEvent e){
            	    dispose();
            		register y=new register();
            		y.register();	
         	}});
            no.addActionListener(new java.awt.event.ActionListener(){
            	public void actionPerformed(ActionEvent e){
            		dispose();
           	}});}}
public class tishi1 extends JFrame{
	void tishi1(){
	Label one;
	Panel one1=new Panel();
	Panel two=new Panel();
		one =new Label("您填写的资料不完整,是否继续填写?");
		setLayout(new GridLayout(2,2));
		add(one1);
		add(two);
		one1.add(one);
		two.setLayout(new FlowLayout(FlowLayout.CENTER,40,0));
		two.add(yes);
		two.add(no);
		setResizable(false);
		setSize(300,100);
		setVisible(true);
	yes.addActionListener(new java.awt.event.ActionListener(){
            	public void actionPerformed(ActionEvent e){
            		register y=new register();
            		y.register();	
            			dispose();
         	}});  
		 no.addActionListener(new java.awt.event.ActionListener(){
            	public void actionPerformed(ActionEvent e){
           		dispose();
           	}});}}
public class tishi2 extends JFrame{    //注册成功提示实现
	void tishi2(){
	Label one;
	Panel one1=new Panel();
	Panel two=new Panel();
		one =new Label("亲爱的用户,您已经成功注册,是否返回登陆窗口?");
		setLayout(new GridLayout(2,2));
		add(one1);
		add(two);
		one1.add(one);
		two.setLayout(new FlowLayout(FlowLayout.CENTER,40,0));
		two.add(yes);
		two.add(no);
		setResizable(false);
		setSize(300,100);
		setVisible(true);
	yes.addActionListener(new java.awt.event.ActionListener(){
            	public void actionPerformed(ActionEvent e){
            		dispose();
            		md5 y=new md5();
            		y.setSize(500,400);
            		y.setVisible(true);	
         	}});
		 no.addActionListener(new java.awt.event.ActionListener(){
            	public void actionPerformed(ActionEvent e){
            		dispose();
            	}});}}
	public void actionPerformed(ActionEvent e){
		String userN=input1.getText();
		String psw=input2.getText();
	}
	 class closeWin extends WindowAdapter{
            public void windowClosing(WindowEvent e){
            	Window w=e.getWindow();
            	w.dispose();
            	}
            	}
public void keyTyped(KeyEvent evt){}
    public void keyPressed(KeyEvent evt){
      int key=evt.getKeyCode();
      if(key==KeyEvent.BUTTON1_DOWN_MASK);
    }
    public void keyReleased(KeyEvent evt){}
    ResultSet rs;         //md5算法实现
	Connection con;
    private String inStr;
    private MessageDigest md5;
    public md5(String inStr){      //构造函数
    	this.inStr = inStr;
        try
        {
        	this.md5 = MessageDigest.getInstance("MD5");
        }
        catch (Exception e)
        {
        	System.out.println(e.toString());
            e.printStackTrace();
        }}
    public String compute()       //关键的md5算法
    {
    	char[] charArray = this.inStr.toCharArray();
        byte[] byteArray = new byte[charArray.length];
        for (int i=0; i<charArray.length; i++)
        byteArray[i] = (byte) charArray[i];
        byte[] md5Bytes = this.md5.digest(byteArray);
        StringBuffer hexValue = new StringBuffer();
        for (int i=0; i<md5Bytes.length; i++)
        {
        	int val = ((int) md5Bytes[i] ) & 0xff; 
            if (val < 16) hexValue.append("0");
            hexValue.append(Integer.toHexString(val));
        }
        return hexValue.toString();
    }
    static	void jiami()     //加密后的表
    {
    	String url="jdbc:odbc:mydata";
	    String sql="create table Information"+"(Username VARCHAR(255) ,"+"Password VARCHAR(255))";
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		} catch(java.lang.ClassNotFoundException e){}
		try{
			Connection con=DriverManager.getConnection(url,"",null);
			Statement stmt=con.createStatement();
			try{
				stmt.executeUpdate(sql);
				System.out.println("student table created");
			}catch(Exception ex){}
			stmt.close();
			con.close();
		}catch(SQLException ex){}
	}
	JLabel username,password;
	TextField input1,input2;
	private Panel	Panel1=new Panel();
    private Panel	Panel2=new Panel();
	private Panel	Panel3=new Panel();
	private JButton Bdenglu=new JButton("LOGGING ON");
	private JButton Bzhuce=new JButton("REGISTER");
	private JButton Bquxiao=new JButton("CANCEL");
	JButton yes=new JButton ("YES");
	JButton	no=new JButton("NO");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -