• Java中密码的校验以及加密函数


    public class Reg {

     /**
      * @param args
      */
     public static void main(String[] args) {
      String aaString="haquanwen12";
      //密码复杂度校验判读是否有数字和字母组成
      if (getInvalue(aaString)) {
       System.out.println("密码有数字字母做成");
      }else {
       System.out.println("密码中不包括数字和字母");

      }
      //普通加密
      System.out.println("普通加密前的密码为:"+aaString);
      String ecoString=encodePwd(aaString);
      System.out.println("普通加密后的密码为:"+ecoString);
      System.out.println("普通再次加密:"+encodePwd(ecoString));
      //MD5加密
      System.out.println("MD5加密后的值为"+encrypt(aaString));
     }
     //密码加密函数,这个方法具有逆向性,及加密算法和解密算法相同的
     public static String encodePwd(String pwd){
      String encodeString="^&*^&687GIKUGUGBjhkjbhjk";
      String  reString="";
      if(pwd==null){
       pwd="";
      }
      for(int i=0;i<pwd.length();i++){
       reString=reString+(char)(pwd.charAt(i)^encodeString.charAt(i));
       
      }
      return reString;
      
     }
     
     //MD5加密
     public static byte[] encrypt(String msg)
     {
      try {
       //生成MessageDigest对象
       MessageDigest md5=MessageDigest.getInstance("MD5");
       byte[] srcBytes=msg.getBytes();
       //更新摘要
       md5.update(srcBytes);
       //完成hash计算。得到result
       byte[] resulBytes=md5.digest();
       return resulBytes;
      } catch (NoSuchAlgorithmException e) {
       // TODO: handle exception
       e.printStackTrace();
      }
      return null;
      
     }
     //密码复杂度校验
     /*    */    public static boolean getInvalue(String pw){
                for(int i=0;i<pw.length();i++){ 
                  if(Character.isDigit(pw.charAt(i))&&Pattern.compile("(?i)[A-Za-z]").matcher(pw).find()){
             return true;
                  }
               }
            return false;
     }

    }

  • 相关阅读:
    【BZOJ】1726 [Usaco2006 Nov]Roadblocks第二短路
    【BZOJ】1666 [Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏
    【BZOJ】1699 [Usaco2007 Jan]Balanced Lineup排队
    【BZOJ】1477 青蛙的约会
    【BZOJ】1385 [Baltic2000]Division expression
    【算法】数学
    【NOIP】提高组2012 同余方程
    【BZOJ】1096 [ZJOI2007]仓库建设
    【算法】动态规划
    【LA】5135 Mining Your Own Business
  • 原文地址:https://www.cnblogs.com/haquanwen/p/3812606.html
Copyright © 2020-2023  润新知