package algorithm;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
//import java.util.*;
//import java.io.*;
public class Algorithm {
/**
* @param args
*/
public static void main(String[] args) {
new Algorithm().init();
}
JFrame f1=new JFrame("注册窗口");
JFrame f=new JFrame("登陆窗口");
JFrame f2=new JFrame("用户窗口");
JFrame f3=new JFrame("修改窗口");
JTextField username=new JTextField(10);
JTextField password=new JPasswordField(10);
JTextField username1=new JTextField(10);
JTextField password1=new JPasswordField(10);
JTextField password2=new JPasswordField(10);
JTextField Pwd=new JPasswordField(10);
JTextField Pwd1=new JPasswordField(10);
JTextField Pwd2=new JPasswordField(10);
String dname="";
//声明Connection对象
Connection conn = null;
// 驱动程序名
String dbdriver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名
String dburl = "jdbc:mysql://localhost:3306/kami";
// MySQL配置时的用户名
String dbuser = "root";
// MySQL配置时的密码
String dbpwd = "123456";
public void init()
{
//f.setBounds(450,150,400,400);
JPanel p=new JPanel();
p.setPreferredSize(new Dimension(200, 60));
p.setLayout(new GridLayout(2,2,1,10));
p.add(new JLabel("用户名: "));
p.add(username);
p.add(new JLabel("口令: "));
p.add(password);
JPanel p1=new JPanel(new FlowLayout(FlowLayout.CENTER,100,5));
p1.setPreferredSize(new Dimension(10,80));
JButton ok=new JButton("确认");
JButton register=new JButton("注册");
ok.addActionListener(new Ok());
register.addActionListener(new register());
p1.add(ok);
p1.add(register);
f.add(p);
f.add(p1,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
JPanel panel=new JPanel();
panel.setPreferredSize(new Dimension(200, 80));
panel.setLayout(new GridLayout(3,2,1,10));
panel.add(new JLabel("请输入用户名:"));
panel.add(username1);
panel.add(new JLabel("请输入口令:"));
panel.add(password1);
panel.add(new JLabel("确认口令:"));
panel.add(password2);
JPanel panel1=new JPanel(new FlowLayout(FlowLayout.CENTER,100,5));
panel1.setPreferredSize(new Dimension(10,80));
JButton reg=new JButton("注册");
reg.addActionListener(new reg());
JButton back=new JButton("返回");
back.addActionListener(new back());
panel1.add(reg);
panel1.add(back);
f1.add(panel);
f1.add(panel1,BorderLayout.SOUTH);
f1.pack();
JPanel jp=new JPanel();
jp.setPreferredSize(new Dimension(200,150));
jp.setLayout(new FlowLayout(FlowLayout.CENTER,100,20));
jp.add(new JLabel("尊敬 的用户,欢迎使用本系统"));
JButton modify=new JButton("修改");
JButton end=new JButton("退出");
modify.addActionListener(new modify());
end.addActionListener(new end());
jp.add(modify);
jp.add(end);
f2.add(jp);
f2.pack();
//f2.setVisible(true);
JPanel jpanel=new JPanel();
jpanel.setPreferredSize(new Dimension(250,90));
jpanel.setLayout(new GridLayout(3,2,1,10));
jpanel.add(new JLabel("请输入原口令:"));
jpanel.add(Pwd);
jpanel.add(new JLabel("请输入修改的口令:"));
jpanel.add(Pwd1);
jpanel.add(new JLabel("确认修改的口令:"));
jpanel.add(Pwd2);
JPanel jpanel1=new JPanel(new FlowLayout(FlowLayout.CENTER,100,8));
jpanel1.setPreferredSize(new Dimension(10,80));
JButton yes=new JButton("确定");
JButton ret=new JButton("返回");
yes.addActionListener(new yes());
ret.addActionListener(new ret());
jpanel1.add(yes);
jpanel1.add(ret);
f3.add(jpanel);
f3.add(jpanel1,BorderLayout.SOUTH);
f3.pack();
//f3.setVisible(true);
}
class Ok implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String Dname=username.getText();
String Dpw=password.getText();
String Ds="";
try {
// 加载驱动程序
Class.forName(dbdriver);
// 连续数据库
conn = (Connection) DriverManager.getConnection(dburl,dbuser,dbpwd);
/* if(!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");*/
// statement用来执行SQL语句
String sql="select username,salt,s from password_info where username='"+Dname+"'";
Statement st = (Statement) conn.createStatement();
ResultSet rs =st.executeQuery(sql);
String u="";
String Dsalt="";
String s="";
while(rs.next())
{ u=rs.getString("username");Dsalt=rs.getString("salt");s=rs.getString("s");}
if(u.equals(Dname))
{
Ds=Agen.Agent(Dpw, Dsalt);
if(Ds.equals(s))
{
JOptionPane.showMessageDialog(null,"登陆成功!");
f.dispose();
f2.setVisible(true);
username.setText(null);
password.setText(null);
dname=Dname;
}
else
{
JOptionPane.showMessageDialog(null, "口令错误!",null,JOptionPane.WARNING_MESSAGE);
password.setText(null);
password.requestFocus();
}
}
else
{
JOptionPane.showMessageDialog(null, "用户名不存在,请注册!",null,JOptionPane.WARNING_MESSAGE);
username.setText(null);
username.requestFocus();
}
}catch (Exception e2) {
System.err.println("jdbc连接异常!");
e2.printStackTrace();
}finally{ try {
if(conn != null){
conn.close();
}
}catch (Exception e3) {
e3.printStackTrace();
}
}
}
}
class register implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
f.dispose();
username.setText(null);
password.setText(null);
f1.setVisible(true);
}
}
class reg implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String Dname=username1.getText();
String b=password1.getText();
String c=password2.getText();
String Dsalt=Agen.Arandom();
String Ds="";
try {
Ds = Agen.Agent(b, Dsalt);
} catch (Exception e4) {
e4.printStackTrace();
}
if(Dname.equals(""))
{
JOptionPane.showMessageDialog(null, "用户名不可为空!",null,JOptionPane.WARNING_MESSAGE);
return ;
}
else
{
if(!b.equals(c)&&b.equals(""))
{
JOptionPane.showMessageDialog(null, "两次口令不一致!",null,JOptionPane.WARNING_MESSAGE);
password2.setText(null);
password2.requestFocus();
}
else
{
//声明Connection对象
Connection conn = null;
try {
// 加载驱动程序
Class.forName(dbdriver);
// 连续数据库
conn = (Connection) DriverManager.getConnection(dburl,dbuser,dbpwd);
/* if(!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");*/
// statement用来执行SQL语句
String sql="select username from password_info where username='"+Dname+"'";
Statement st = (Statement) conn.crea
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于JAVA的口令的身份认证系统,连接mysql,制作较为简单采用了swing编程,虽然连接数据库的类没封装下载者想改请自行封装。制作者为学生已上交过大作业,发出来供大家参考借鉴。具体内容就是输入密码随机加盐之后转换成字符串存入数据库中。到时候验证就采用同样的操作测试字符串是否一样。具体如何自己下载观摩。有疑问可以加我qq有空就会回答你的一些疑问。--1254891048,(作者还有一份MFC连接SQL的工程如有需要的话),请大家好好学习,切勿完全照搬。谢谢配合。
资源推荐
资源详情
资源评论
收起资源包目录
base_of_password.zip (15个子文件)
base_of_password
.project 389B
bin
algorithm
Algorithm$back.class 984B
Algorithm$yes.class 4KB
Algorithm$register.class 957B
Algorithm$modify.class 781B
Algorithm$ret.class 966B
Algorithm.class 4KB
Algorithm$end.class 771B
Algorithm$reg.class 4KB
Agen.class 4KB
Algorithm$Ok.class 4KB
src
algorithm
Algorithm.java 13KB
Agen.java 3KB
.classpath 310B
lib
mysql-connector-java-5.1.10-bin.jar 707KB
共 15 条
- 1
资源评论
new1bie
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功