WEB开发网
开发学院软件开发Java 开源密码管理软件 阅读

开源密码管理软件

 2007-12-23 12:30:56 来源:WEB开发网   
核心提示:/** * 版权所有, * 作者:陈跃峰 * email:cqUCyf@263.net * 该代码,开源密码管理软件,您可以任意使用,转贴,请返回!"); }else{//用户未设置密码 //提示尚未设置密码 displayAlert("您尚未设置密码,无法删除!"); }

/**
 * 版权所有, * 作者:陈跃峰
 * email:cqUCyf@263.net
 * 该代码,您可以任意使用,转贴,但是请在任何时候都不要删除该信息
 * 若以商业方式使用,请于作者联系
 * 版本号:0.20
 */
package pm.core;

import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.microedition.rms.*;


/**
 * 密码管理软件
 * 实现将常用的密码信息都保存在手机中。如银行密码、邮箱密码等等,该软件不访问网络,所以绝对不会泄漏您的个人隐私。
 */

public class PassWordManagerMidlet extends MIDlet implements CommandListener {
 //显示对象
   Display display;
   //主题
   String title = "开源密码管理软件";
   //软件主界面
   List lstMain;
  
   //主界面确定按钮
   Command cmdEnterMain;
   //退出按钮
   Command cmdExit;
  
   //增加密码界面
   Form frmAddPassword;
   //密码ID
   TextField tfId;
   //密码
   TextField tfPsswordAdd;
   //确认密码
   TextField tfConfirmPasswordAdd;
   //备注信息
   TextField tfRemark;
   //确定按钮
   Command cmdEnterAdd;
   //返回按钮
   Command cmdBackAdd;
  
   //查看密码主界面
   List lstView;
   //查看详细信息按钮
   Command cmdInfo;
   //返回按钮
   Command cmdBackViewMain;
    //查看密码中的显示详细信息窗口
    TextBox tbViewInfo;
    //删除按钮
    Command cmdDelView;
    //修改按钮
    Command cmdModify;
    //返回按钮
    Command cmdBackViewInfo;
    
    //查看密码中的修改密码窗口
    Form frmViewModifyPassword;
    //密码文本框
    TextField tfPasswordView;
    //确认密码文本框
    TextField tfConfirmPasswordView;
    //修改按钮
    Command cmdModifyView;
    //返回按钮
    Command cmdBackViewModify;
  
  
   //设置密码界面
   Form frmSetPassword;
   //密码
   TextField tfPassword;
   //确认密码
   TextField tfConfirmPassword;
   //确定按钮
   Command cmdEnterSetPassword;
   //返回按钮
   Command cmdBackSetPassword;
   //删除按钮
   Command cmdDelSetPassword;
  
   //帮助界面
   Form frmHelp;
   //帮助界面的返回按钮
   Command cmdBackHelp;
  
   //关于界面
   Form frmAbout;
   //关于界面的返回按钮
   Command cmdBackAbout;
  
   //提示窗口
   Alert alert;
  
   //启动时的输入密码界面
   Form frmStartPassword;
   //密码输入文本框
   TextField tfStartPassword;
   //密码界面中的确定按钮
   Command cmdEnterStart;
  
   //密码
   String password = "";
  
   //记录对象
   RecordStore rs;
   //存储密码ID内容
   String[] id;
   //保存显示的密码ID对应的索引号,数组下标为0的代表第一个密码ID,1的代表第二个,依次类推
   int[] idIndex;
    
 /**
  * 初始化界面元素
  */
   public PasswordManagerMidlet() {
    //初始化显示对象
     display = Display.getDisplay(this);
     //初始化主窗体
 lstMain = new List(title,List.IMPLICIT);
 lstMain.append("增加",null);
 lstMain.append("察看",null);
 lstMain.append("设置",null);
 lstMain.append("帮助",null);
 lstMain.append("关于",null);
 
 //初始化主界面确定按钮
 cmdEnterMain = new Command("确定",Command.OK,1);
 //添加到主界面
 lstMain.addCommand(cmdEnterMain);
 
 //初始化退出按钮
 cmdExit = new Command("退出",Command.EXIT,1);
 //添加到主界面
 lstMain.addCommand(cmdExit);
 
 //初始化增加密码界面
 frmAddPassword = new Form(title);
 tfId = new TextField("密码ID:","",100,TextField.ANY);
 tfPsswordAdd = new TextField("密码:","",20,TextField.PASSWORD);
 tfConfirmPasswordAdd = new TextField("1确认密码:","",20,TextField.PASSWORD);
 tfRemark = new TextField("备注:","",100,TextField.ANY);
 cmdEnterAdd = new Command("确定",Command.OK,1);
 cmdBackAdd = new Command("返回",Command.BACK,1);
 
 //添加到增加密码界面
 frmAddPassword.append(tfId);
 frmAddPassword.append(tfPsswordAdd);
 frmAddPassword.append(tfConfirmPasswordAdd);
 frmAddPassword.append(tfRemark);
 frmAddPassword.addCommand(cmdEnterAdd);
 frmAddPassword.addCommand(cmdBackAdd);
 
 //初始化查看密码主界面
 lstView = new List(title,List.IMPLICIT);
 cmdInfo = new Command("查看",Command.SCREEN,1);
 cmdBackViewMain = new Command("返回",Command.BACK,1);
 //添加到查看密码主界面
 lstView.addCommand(cmdInfo);
 lstView.addCommand(cmdBackViewMain);
  //初始化查看密码详细信息界面
  tbViewInfo = new TextBox("详细信息","",200,TextField.ANY);
  cmdDelView =new Command("删除",Command.SCREEN,1);
  cmdModify = new Command("修改",Command.SCREEN,1);
  cmdBackViewInfo =new Command("返回",Command.BACK,1);
  //添加到查看密码详细信息界面中
  tbViewInfo.addCommand(cmdDelView);
  tbViewInfo.addCommand(cmdModify);
  tbViewInfo.addCommand(cmdBackViewInfo);
  
  //初始化查看密码中的修改密码界面
  frmViewModifyPassword = new Form("修改密码");
  tfPasswordView = new TextField("密码:","",20,TextField.PASSWORD);
  tfConfirmPasswordView = new TextField("确认密码:","",20,TextField.PASSWORD);
  cmdModifyView = new Command("确定",Command.OK,1);
  cmdBackViewModify = new Command("返回",Command.BACK,1);
  //添加到修改密码界面
  frmViewModifyPassword.append(tfPasswordView);
  frmViewModifyPassword.append(tfConfirmPasswordView);
  frmViewModifyPassword.addCommand(cmdModifyView);
  frmViewModifyPassword.addCommand(cmdBackViewModify);
 
 
 //初始化设置密码界面
 frmSetPassword = new Form("设置密码");
 tfPassword = new TextField("密码:","",20,TextField.PASSWORD);
 tfConfirmPassword = new TextField("确认密码:","",20,TextField.PASSWORD);
 cmdEnterSetPassword = new Command("确定",Command.OK,1);
 cmdBackSetPassword = new Command("返回",Command.BACK,1);
 cmdDelSetPassword = new Command("删除",Command.SCREEN,1);
 //添加到设置密码界面
 frmSetPassword.append(tfPassword);
 frmSetPassword.append(tfConfirmPassword);
 frmSetPassword.addCommand(cmdEnterSetPassword);
 frmSetPassword.addCommand(cmdBackSetPassword);
 frmSetPassword.addCommand(cmdDelSetPassword); 
 
 //初始化帮助界面
 frmHelp = new Form("帮助");
 frmHelp.append("开源密码管理软件是一款帮助您管理各种密码的软件,\"增加\"中可以增加新的密码,\"察看\"中可以查看、修改和删除已有的密码,\"设置\"中可以进行该软件的进入密码设置。");
 //初始化返回按钮
 cmdBackHelp = new Command("返回",Command.BACK,1);
 //添加到帮助界面
 frmHelp.addCommand(cmdBackHelp);
 
     //初始化关于界面
     frmAbout = new Form("关于...");
     frmAbout.append("版权所有 2004-  作者:陈跃峰  email:cqucyf@263.net  欢迎您提出该版本的更新建议");
     //初始化返回按钮
     cmdBackAbout = new Command("返回",Command.BACK,1);
     //添加到关于界面
     frmAbout.addCommand(cmdBackAbout);
    
     //初始化提示窗口
     alert = new Alert(title);
    
     //初始化启动时的密码界面
     frmStartPassword = new Form(title);
     //初始化启动时的密码输入文本框
     tfStartPassword = new TextField("请输入密码","",20,TextField.PASSWORD);
     //初始化确定按钮
     cmdEnterStart = new Command("确定",Command.OK,1);
    
     //添加到密码界面中
     frmStartPassword.append(tfStartPassword);
     frmStartPassword.addCommand(cmdEnterStart);
     frmStartPassword.addCommand(cmdExit);    
    
     //事件处理
     lstMain.setCommandListener(this);
     frmHelp.setCommandListener(this);
     frmAbout.setCommandListener(this);
     frmStartPassword.setCommandListener(this);
     frmSetPassword.setCommandListener(this);
     frmAddPassword.setCommandListener(this);
     lstView.setCommandListener(this);
     tbViewInfo.setCommandListener(this);
     frmViewModifyPassword.setCommandListener(this);
    
    /*  //测试代码,添加记录
     try{
    rs = RecordStore.openRecordStore("password",true);
    rs.setRecord(1,new String("123456").getBytes(),0,6);
 
  //   System.out.PRintln(i);
    rs.closeRecordStore();      
     }catch(Exception e){
      System.out.println("测试代码--添加记录:" + e);
     }
    //测试代码,删除所有记录集
    try{
    RecordStore.deleteRecordStore("id");
    RecordStore.deleteRecordStore("pwd");
    RecordStore.deleteRecordStore("remark");
    RecordStore.deleteRecordStore("flag");
    //RecordStore.deleteRecordStore("password");
    }catch(Exception e){
    System.out.println(e);
    }     */


   }
 /**
  * 启动方法
  */
   public void startApp () {
    try{
    //打开密码纪录
    rs = RecordStore.openRecordStore("password",false);
    //读取密码
    byte[] b = rs.getRecord(1);
    password = new String(b,"iso8859_1");
    //关闭记录
    rs.closeRecordStore();
    //显示输入密码界面
    display.setCurrent(frmStartPassword);
    
   }catch(Exception e){
    //没有密码记录,则显示主界面
    display.setCurrent(lstMain);
   }
   }

   public void destroyApp(boolean unconditional) {
   }

   public void pauseApp() {
   }
 
 /**
  * 事件处理
  */
   public void commandAction(Command c, Displayable s) {
    //处理启动时的密码窗口中的确定按钮事件
    if(c == cmdEnterStart){
    //用户输入的密码
    String pwd = tfStartPassword.getString();
    //判断用户输入是否为空
    if(pwd == null pwd.length() ==0){ //输入为空
     //显示警告提示
     displayAlert("请输入密码!");
    }else{ //输入不为空
     //比较密码
     if(pwd.equals(password)){ //密码正确
     //显示主界面
     display.setCurrent(lstMain);
     }else{//密码错误
     //显示警告提示
     displayAlert("密码错误,请重新输入!");
     }
    }
    }
  
    //处理退出事件
    if(c == cmdExit){
       destroyApp(false);
       notifyDestroyed();
     }
    
     //处理主界面中的选择
     if(c == cmdEnterMain){
      int index = lstMain.getSelectedIndex();
      
      //System.out.println(index);
      //选择“增加”
      if(index == 0){
      //显示增加密码界面
      display.setCurrent(frmAddPassword);
      }
      //选择“查看”
      if(index == 1){
      
      //获得密码ID列表
      try{
       //打开flag记录集
      RecordStore rsTemp = RecordStore.openRecordStore("flag",true);
       //打开ID记录集
       rs = RecordStore.openRecordStore("id",true);
       //获得记录集中记录的个数
       int num = rs.getNumRecords();
       //初始化密码ID索引数组
       idIndex = new int[num];
       
       //创建存储ID的数组
       id = new String[num];
       //将ID信息读入ID数组中
       int j = 0;//代表数组的下标
       for(int i = 1;i <= num;i++){
       //如果flag记录集中的值为0,则读,1代表删除,则不读
       String flagTemp = new String(rsTemp.getRecord(i));
       //System.out.println("" + i + ":" + flagTemp);
       if(flagTemp.equals("0")){
        idIndex[j] = i;  //获得显示的内容于记录集中的索引号的对应关系
        id[j] = new String(rs.getRecord(i),"gb2312");
        j++;
       }
       }
       //System.out.println("lstView.size() 2:" + lstView.size());
        //清空lstView中的显示
      for(int i = lstView.size() - 1;i >= 0;i--){
       lstView.delete(i);
       //System.out.println("lstView.delete(" + i + ")");
      }
       //将ID信息显示在lstView中
       for(int i = 0;i < j;i++){
       lstView.append(id[i],null);
       //System.out.println("lstView.append(" + i + ")");
       }
       
       //显示lstView
       display.setCurrent(lstView);
      }catch(Exception e){
       System.out.println("查看密码失败:" +e);
       //查看失败
       displayAlert("查看密码失败!");


      }
      }
      //选择“设置”
      if(index == 2){
      //显示设置密码界面
      display.setCurrent(frmSetPassword);
      }
      //选择“帮助”
      if(index == 3){
      //显示帮助界面
      display.setCurrent(frmHelp);
      }
      //选择“关于”
      if(index == 4){
      //显示关于界面
      display.setCurrent(frmAbout);
      }
      
      //未选择
      if(index == -1){
      displayAlert("请选择您要察看的项目");
      }
     }
    
     //处理设置密码界面中的返回按钮
     if(c == cmdBackSetPassword){
      //显示主界面
      display.setCurrent(lstMain);
     }
    
     //处理设置密码界面中的确定按钮
     if(c == cmdEnterSetPassword){
      //密码
      String pwd1 = tfPassword.getString();
      //确认密码
      String pwd2 = tfConfirmPassword.getString();
      //判断用户是否输入为空
      if(pwd1.length() !=0 && pwd2.length() != 0){
      //判断密码和确认密码是否相同
      if(pwd1.equals(pwd2)){
       //设置密码
       try{
       //打开密码纪录
     rs = RecordStore.openRecordStore("password",true);
     //System.out.println("rs.getNumRecords():" + rs.getNumRecords());
     //判断是否已设置密码
     if(rs.getNumRecords() > 0){
      //设置密码
      rs.setRecord(1,pwd1.getBytes(),0,pwd1.length());
     }else{ //未设置密码
      rs.addRecord(pwd1.getBytes(),0,pwd1.length());
     }
     //关闭记录
     rs.closeRecordStore();
     //提示修改成功
     displayAlert("密码设置成功");
       }catch(Exception e){
       //System.out.println(e);
       //设置失败
       displayAlert("密码设置失败!");
       }
      }else{
       //提示用户密码和确认密码必须相同
       displayAlert("密码和确认密码不相同");
      }
      }else{
      //提示用户密码和确认密码不能为空
      displayAlert("请检查密码和确认密码是否为空!");
      }
     }
    
     //处理帮助界面中的返回按钮
     if(c == cmdBackHelp){
      //显示主界面
      display.setCurrent(lstMain);
     }
    
     //处理关于界面中的返回按钮
     if(c == cmdBackAbout){
      //显示主界面
      display.setCurrent(lstMain);
     }
    
     //处理增加密码界面中的返回按钮
     if(c == cmdBackAdd){
      //显示主界面
      display.setCurrent(lstMain);
     }
    
     //处理增加密码界面中的确定按钮事件
     if(c == cmdEnterAdd){
      String idAdd = tfId.getString(); //id


      String passwordAdd = tfPsswordAdd.getString();//密码
      String confirmPasswordAdd = tfConfirmPasswordAdd.getString();//确认密码
      String remarkAdd = tfRemark.getString();//备注
      //判断是否完整输入,备注可以为空
      if(idAdd.length() != 0 && passwordAdd.length() != 0 && confirmPasswordAdd.length() != 0){
      //比较密码和确认密码是否相同
      if(passwordAdd.equals(confirmPasswordAdd)){
       //写入记录集中
       try{
    
       //写入ID
       rs = RecordStore.openRecordStore("id",true);
       rs.addRecord(idAdd.getBytes(),0,idAdd.length());
       rs.closeRecordStore();
       //写入密码
       rs = RecordStore.openRecordStore("pwd",true);
       rs.addRecord(passwordAdd.getBytes("iso8859_1"),0,passwordAdd.length());
       rs.closeRecordStore();
       //写入备注
       rs = RecordStore.openRecordStore("remark",true);
       rs.addRecord(remarkAdd.getBytes("iso8859_1"),0,remarkAdd.length());
       rs.closeRecordStore();
       //写入是否删除的标记,0代表正常,1代表删除
       rs = RecordStore.openRecordStore("flag",true);
       rs.addRecord(new String("0").getBytes(),0,1);
       rs.closeRecordStore();
       
       //提示密码增加成功
       displayAlert("密码增加成功!");
       }catch(Exception e){
       //显示警告信息
       displayAlert("增加密码失败!");
       }
      }else{
       //显示警告信息
       displayAlert("密码和确认密码是否相同!");
      }
      }else{
      //显示警告信息
      displayAlert("请检查输入是否完整!");
      }      
     }
    
    //处理查看密码主界面中的返回按钮
    if(c == cmdBackViewMain){
     //显示主界面
      display.setCurrent(lstMain);     
    }
   
    //处理查看密码主界面中的查看按钮事件
    if(c == cmdInfo){
     int index = lstView.getSelectedIndex();  //需要查看的信息id
     //如果没有记录,则直接返回
     if(index == -1) return;
     
     //获得信息
     String s1 = getInfoById(idIndex[index]);
     if(s != null){
     //显示到tbViewInfo中
     tbViewInfo.setString(s1);
     }else{
     //显示提示信息,查看失败
     displayAlert("无法获得详细信息");
     }
     //显示密码详细信息界面
     display.setCurrent(tbViewInfo);
    }
   
    //处理密码详细信息界面中的返回按钮事件
    if(c == cmdBackViewInfo){
     //显示查看密码主界面
     display.setCurrent(lstView);
    }
   
    //处理密码详细信息界面中的修改按钮事件
    if(c == cmdModify){
     //显示修改密码界面
     display.setCurrent(frmViewModifyPassword);
    }
   
    //处理密码详细信息界面中的删除按钮事件
    if(c == cmdDelView){
     //查看密码界面中被选中的索引号
     int index = lstView.getSelectedIndex();
     
     //删除纪录集中的内容
     try{
     //向记录集中的flag内容中写入删除标记
     rs = RecordStore.openRecordStore("flag",true);
     rs.setRecord(idIndex[index],new String("1").getBytes(),0,1);
     rs.closeRecordStore();
     
     //返回主界面
     display.setCurrent(lstMain);
     }catch(Exception e){
     System.out.println(e);
     //显示警告信息
     displayAlert("删除密码失败,请重试!");
     }     
    }
   
    //处理修改密码界面中的返回按钮事件
    if(c == cmdBackViewModify){
     int index = lstView.getSelectedIndex();  //需要查看的信息id
     //获得信息
     String s1 = getInfoById(idIndex[index]);
     if(s != null){
     //显示到tbViewInfo中
     tbViewInfo.setString(s1);
     }else{
     //显示提示信息,查看失败
     displayAlert("无法获得详细信息");
     }
     //显示密码详细信息界面
     display.setCurrent(tbViewInfo);
    }
   
    //处理修改密码界面中的修改按钮事件
    if(c == cmdModifyView){
    //密码框用户输入
     String pwd1 = tfPasswordView.getString();
     //确认密码框用户输入
     String pwd2 = tfConfirmPasswordView.getString();
     //判断用户的输入
     if(pwd1.length() != 0 && pwd2.length() != 0){ //用户输入了密码和确认密码
     //判断密码和确认密码是否相同
     if(pwd1.equals(pwd2)){//相同
      int index = lstView.getSelectedIndex();  //需要查看的信息id
      //修改密码
      try{
      //修改密码
      rs = RecordStore.openRecordStore("pwd",true);
      rs.setRecord(idIndex[index],pwd1.getBytes(),0,pwd1.length());
      rs.closeRecordStore();
      //显示
      //获得信息
      String s1 = getInfoById(idIndex[index]);
      if(s != null){
       //显示到tbViewInfo中
      tbViewInfo.setString(s1);
      }else{
      //显示提示信息,查看失败
       displayAlert("无法获得详细信息");
      }
      //显示密码详细信息界面
      display.setCurrent(tbViewInfo);
      }catch(Exception e){
      //显示修改失败
      displayAlert("修改密码失败");
      }
     }else{//不相同
      //显示密码和确认密码不相同
      displayAlert("密码和确认密码不同!");
     }
     }else{ //密码或者确认密码,用户未输入
     //提示用户输入
     displayAlert("请检查输入是否完整,其中密码和确认密码均不能为空!");
     }
    }
   
    //设置进入密码界面中的删除按钮事件
    if(c == cmdDelSetPassword){
     try{
     //判断用户是否已设置密码
     rs = RecordStore.openRecordStore("password",true);
     int numTemp = rs.getNumRecords(); //记录集中的纪录数量
     rs.closeRecordStore();
     //用户已设置密码
     if(numTemp > 0){  
      //删除,彻底删除
      RecordStore.deleteRecordStore("password");
      //提示删除密码成功
      displayAlert("删除密码成功,请返回!");
     }else{//用户未设置密码
      //提示尚未设置密码
      displayAlert("您尚未设置密码,无法删除!");
     }
     }catch(Exception e){
     
     //显示删除失败
     displayAlert("删除密码失败,请重试!");
     }
    }
   }
  
   /**
   *显示提示或者警告信息
   *@param msg 信息内容
   */
   public final void displayAlert(String msg){
     //设置提示信息
     alert.setString(msg);
     //显示3秒
     alert.setTimeout(3000);
     display.setCurrent(alert);    
   }
  
   /**
   * 获得指定id的纪录内容,包括密码id,密码和备注信息
   *
   *
   */
   public final String getInfoById(int id){
    try{
    //密码ID
    rs = RecordStore.openRecordStore("id",false);
     String idView = new String(rs.getRecord(id),"gb2312");
     rs.closeRecordStore();
     //密码
     rs = RecordStore.openRecordStore("pwd",false);
     String pwdView = new String(rs.getRecord(id),"gb2312");
     rs.closeRecordStore();
     //备注
     rs = RecordStore.openRecordStore("remark",false);
     String remarkView = new String(rs.getRecord(id),"gb2312");
     rs.closeRecordStore();
     //返回
     return "密码id:" + idView + "  密码:" + pwdView + "  备注:" + remarkView;
 }catch(Exception e){
  return null;
 }     
   }
}


(出处:http://www.cncms.com)


Tags:开源 密码 管理软件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接