你要想讓程序記住你的修改結果是不可能的,應為你只要退出這個程序,所有的變量都就被清理了。當你再次重新運行程序時,所有的變量又被從新初始化賦值。你要想驗證你的密碼是不是被修改就得找那個保存文件的代碼。將你的修改結果保存起來。要不然你是看不到結果的。。或者你就把你的那些寫入到數據庫中。然后在查詢數據庫。
創新互聯主要從事網站設計制作、網站制作、網頁設計、企業做網站、公司建網站等業務。立足成都服務尉氏,10余年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:028-86922220
你要是想修改本程序的。你這個程序中的密碼是123.、那你就弄個輸入程序。然后這個123替換掉不就行了嘛。if (name1.equals("xiaoming") pwd1.equals("123")) 。如果你是想讓顯示出來。當完成String p = scan.next();這句后,你把p的值就得到了。打印出來就可以了啊
public boolean Update(String username,ArrayList array)
{
Connection con;
Statement sql;
ResultSet rs;
boolean Flag = false;
//橋接法驅動
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try
{
//test為跟數據庫關聯的數據源名
con = DriverManager.getConnection("jdbc:odbc:test","","");
sql = con.createStatement();
/* 假設數據庫中用戶表如下:
* 表名:user
* 各字段:
* username(用戶名) password(密碼) pflag(用戶權限)
*
*/
rs = sql.executeQuery("select password from user where username='"+username+"'");
while(rs.next()){
Flag = true;
String password = rs.getString(1);
array.add(password);
}
}
catch(SQLException e1)
{
System.err.println(e1) ;
}
return Flag;
}
}
代碼不完整,還有幾個類
public?class?ATMChangePass?extends?JFrame?{
private?JPanel?contentPane;
private?JPasswordField?txtOldPass,?txtNewPass1,?txtNewPass2;
private?String?user;
private?Zhujiemian?owner;
public?ATMChangePass(Zhujiemian?owner,?String?user)?{
super("修改密碼");
this.user=user;
this.owner=owner;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,?100,?450,?300);
contentPane?=?new?JPanel();
contentPane.setBorder(new?EmptyBorder(5,?5,?5,?5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel?label?=?new?JLabel("\u8BF7\u8F93\u5165\u65E7\u5BC6\u7801");
label.setBounds(10,?43,?155,?33);
contentPane.add(label);
JLabel?label_1?=?new?JLabel("\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801");
label_1.setBounds(10,?113,?155,?33);
contentPane.add(label_1);
JLabel?label_2?=?new?JLabel("\u8BF7\u518D\u6B21\u8F93\u5165\u65B0\u5BC6\u7801");
label_2.setBounds(10,?179,?155,?39);
contentPane.add(label_2);
txtOldPass?=?new?JPasswordField();
txtOldPass.setColumns(10);
txtOldPass.setBounds(214,?49,?118,?21);
contentPane.add(txtOldPass);
txtNewPass1?=?new?JPasswordField();
txtNewPass1.setColumns(10);
txtNewPass1.setBounds(214,?119,?118,?21);
contentPane.add(txtNewPass1);
txtNewPass2?=?new?JPasswordField();
txtNewPass2.setColumns(10);
txtNewPass2.setBounds(214,?188,?118,?21);
contentPane.add(txtNewPass2);
JButton?button?=?new?JButton("修改");
button.addMouseListener(new?MouseAdapter()?{
@Override
public?void?mouseClicked(MouseEvent?arg0)?{
doChangePass();
}
});
button.setBounds(74,?228,?93,?23);
contentPane.add(button);
JButton?button_1?=?new?JButton("返回");
button_1.addMouseListener(new?MouseAdapter()?{
@Override
public?void?mouseClicked(MouseEvent?arg0)?{
dispose();
ATMChangePass.this.owner.setVisible(true);
}
});
button_1.setBounds(239,?228,?93,?23);
contentPane.add(button_1);
setVisible(true);
}
private?void?doChangePass(){
if(txtOldPass.getText().length()6){
JOptionPane.showMessageDialog(this,?"原密碼不正確!",?getTitle(),?JOptionPane.WARNING_MESSAGE);
return;
}
if(txtNewPass2.getText().length()6){
JOptionPane.showMessageDialog(this,?"新密碼不正確!",?getTitle(),?JOptionPane.WARNING_MESSAGE);
return;
}
if(!txtNewPass1.getText().equals(txtNewPass2.getText())){
JOptionPane.showMessageDialog(this,?"新密碼不對應!",?getTitle(),?JOptionPane.WARNING_MESSAGE);
return;
}
JOptionPane.showMessageDialog(this,?"修改成功!");
dispose();
}
public?static?void?main(String?args[])throws?Exception{
new?ATMChangePass(null,?"user1");
}
}
首先,form表單必須的,是用來輸入用戶名和密碼,brform表單 action="%=basePath %Admin.shtml" method="post",br主要指明的是請求的路徑,請求的方式,post.bronSubmit="return checkPWD()"的目的就是在點擊提交的時候執行的操作,。br成功的話就跳轉到action所指定的路徑去。不成功的話就是還在當前頁。br/HEADbr%brString message = (String)request.getAttribute("message");brif(message == null){brmessage = "";br}brif (!message.trim().equals("")){brout.println("script language='javascript'");brout.println("alert('"+message+"');");brout.println("/script");br}brrequest.removeAttribute("message");br%br%brString username=(String)session.getAttribute("user");brif(username==null){brresponse.sendRedirect(basePath+"/error.jsp");br}brelse{brList list=(List)session.getAttribute("list");br%br從session里面獲取userName的值,然后就是判斷,如果是空的話就跳轉到錯誤的頁面,還有如果請求的信息如果有的話就彈出請求的信息的內容!!!
private?void?yesButtonActionPerformed(java.awt.event.ActionEvent?evt)?{
//?TODO?add?your?handling?code?here:
String?name?=?usrNameText.getText();
String?pwd?=?pwdText.getText().hashCode()?+?"";
String?repwd?=?repeatPwdText.getText().hashCode()?+?"";
if?(pwd.equalsIgnoreCase(repwd))?{
JOptionPane.showMessageDialog(null,?"注冊成功",?"提示",
JOptionPane.PLAIN_MESSAGE);
User?in?=?new?User(name,?pwd,?GetTime.getTime());
DOM4User.insertUser(in);
this.setVisible(false);
}?else?{
JOptionPane.showMessageDialog(null,?"兩次密碼不一致,重輸入",?"提示",
JOptionPane.PLAIN_MESSAGE);
}
}
package com.cube.limail.util;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;/**
* 加密解密類
*/
public class Eryptogram
{
private static String Algorithm ="DES";
private String key="CB7A92E3D3491964";
//定義 加密算法,可用 DES,DESede,Blowfish
static boolean debug = false ;
/**
* 構造子注解.
*/
public Eryptogram ()
{
} /**
* 生成密鑰
* @return byte[] 返回生成的密鑰
* @throws exception 扔出異常.
*/
public static byte [] getSecretKey () throws Exception
{
KeyGenerator keygen = KeyGenerator.getInstance (Algorithm );
SecretKey deskey = keygen.generateKey ();
System.out.println ("生成密鑰:"+bytesToHexString (deskey.getEncoded ()));
if (debug ) System.out.println ("生成密鑰:"+bytesToHexString (deskey.getEncoded ()));
return deskey.getEncoded ();
} /**
* 將指定的數據根據提供的密鑰進行加密
* @param input 需要加密的數據
* @param key 密鑰
* @return byte[] 加密后的數據
* @throws Exception
*/
public static byte [] encryptData (byte [] input ,byte [] key ) throws Exception
{
SecretKey deskey = new javax.crypto.spec.SecretKeySpec (key ,Algorithm );
if (debug )
{
System.out.println ("加密前的二進串:"+byte2hex (input ));
System.out.println ("加密前的字符串:"+new String (input ));
} Cipher c1 = Cipher.getInstance (Algorithm );
c1.init (Cipher.ENCRYPT_MODE ,deskey );
byte [] cipherByte =c1.doFinal (input );
if (debug ) System.out.println ("加密后的二進串:"+byte2hex (cipherByte ));
return cipherByte ;
} /**
* 將給定的已加密的數據通過指定的密鑰進行解密
* @param input 待解密的數據
* @param key 密鑰
* @return byte[] 解密后的數據
* @throws Exception
*/
public static byte [] decryptData (byte [] input ,byte [] key ) throws Exception
{
SecretKey deskey = new javax.crypto.spec.SecretKeySpec (key ,Algorithm );
if (debug ) System.out.println ("解密前的信息:"+byte2hex (input ));
Cipher c1 = Cipher.getInstance (Algorithm );
c1.init (Cipher.DECRYPT_MODE ,deskey );
byte [] clearByte =c1.doFinal (input );
if (debug )
{
System.out.println ("解密后的二進串:"+byte2hex (clearByte ));
System.out.println ("解密后的字符串:"+(new String (clearByte )));
} return clearByte ;
} /**
* 字節碼轉換成16進制字符串
* @param byte[] b 輸入要轉換的字節碼
* @return String 返回轉換后的16進制字符串
*/
public static String byte2hex (byte [] b )
{
String hs ="";
String stmp ="";
for (int n =0 ;n b.length ;n ++)
{
stmp =(java.lang.Integer.toHexString (b [n ] 0XFF ));
if (stmp.length ()==1 ) hs =hs +"0"+stmp ;
else hs =hs +stmp ;
if (n b.length -1 ) hs =hs +":";
} return hs.toUpperCase ();
}
/**
* 字符串轉成字節數組.
* @param hex 要轉化的字符串.
* @return byte[] 返回轉化后的字符串.
*/
public static byte[] hexStringToByte(String hex) {
int len = (hex.length() / 2);
byte[] result = new byte[len];
char[] achar = hex.toCharArray();
for (int i = 0; i len; i++) {
int pos = i * 2;
result[i] = (byte) (toByte(achar[pos]) 4 | toByte(achar[pos + 1]));
}
return result;
}
private static byte toByte(char c) {
byte b = (byte) "0123456789ABCDEF".indexOf(c);
return b;
}
/**
* 字節數組轉成字符串.
* @param String 要轉化的字符串.
* @return 返回轉化后的字節數組.
*/
public static final String bytesToHexString(byte[] bArray) {
StringBuffer sb = new StringBuffer(bArray.length);
String sTemp;
for (int i = 0; i bArray.length; i++) {
sTemp = Integer.toHexString(0xFF bArray[i]);
if (sTemp.length() 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
return sb.toString();
}
/**
* 從數據庫中獲取密鑰.
* @param deptid 企業id.
* @return 要返回的字節數組.
* @throws Exception 可能拋出的異常.
*/
public static byte[] getSecretKey(long deptid) throws Exception {
byte[] key=null;
String value=null;
//CommDao dao=new CommDao();
// List list=dao.getRecordList("from Key k where k.deptid="+deptid);
//if(list.size()0){
//value=((com.csc.sale.bean.Key)list.get(0)).getKey();
value = "CB7A92E3D3491964";
key=hexStringToByte(value);
//}
if (debug)
System.out.println("密鑰:" + value);
return key;
}
public String encryptData2(String data) {
String en = null;
try {
byte[] key=hexStringToByte(this.key);
en = bytesToHexString(encryptData(data.getBytes(),key));
} catch (Exception e) {
e.printStackTrace();
}
return en;
}
public String decryptData2(String data) {
String de = null;
try {
byte[] key=hexStringToByte(this.key);
de = new String(decryptData(hexStringToByte(data),key));
} catch (Exception e) {
e.printStackTrace();
}
return de;
}
} 加密使用: byte[] key=Eryptogram.getSecretKey(deptid); //獲得鑰匙(字節數組)
byte[] tmp=Eryptogram.encryptData(password.getBytes(), key); //傳入密碼和鑰匙,獲得加密后的字節數組的密碼
password=Eryptogram.bytesToHexString(tmp); //將字節數組轉化為字符串,獲得加密后的字符串密碼解密與之差不多
分享文章:設置密碼的java代碼 設置密碼的java代碼有哪些
文章來源:http://vcdvsql.cn/article16/hejdgg.html
成都網站建設公司_創新互聯,為您提供網站導航、企業建站、網頁設計公司、搜索引擎優化、外貿網站建設、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯