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;
 }

}

转载于:https://my.oschina.net/haquanwen/blog/91270

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值