Java的MD5加密返回32或24位的字符

平时开发过程中多多少少都需要用到一些加密,平时最常用的就密码加密了,这样做为了防止数据库数据暴露导致密码外泄。平时我们常用的加密有SHA1、MD5、DES、AES、3DES,而且是不可逆的加密方式,其中3DES是国内银行常用的加密方式。不过以前听说咱们北京教授王小云似乎把MD5加密给破解了,也不知道是不是真的,反正说不准。

MD5加密是这样的过程:用户输入密码转入后台,然后把该密码转为MD5后的加密字符,如果这串字符与数据库存的那串字符相匹配那就是正确了,反之错误。所以说数据库存的密码字符串也是加密过的,就算数据信息暴露也取不用户密码信息了。以下是一个JAVA的MD5加密方式,拷贝即可用了

private static void Md5(String plainText ) { 
 try {
    MessageDigest md = MessageDigest.getInstance("MD5");  
    md.update(plainText.getBytes());
    byte b[] = md.digest();
    int i;
   
    StringBuffer buf = new StringBuffer("");
    for (int offset = 0; offset < b.length; offset++) {
              i = b[offset];
              if(i<0) i+= 256;
              if(i<16)
                   buf.append("0");
                   buf.append(Integer.toHexString(i));
    }
 
    System.out.println("result: " + buf.toString());//32位的加密
    System.out.println("result: " + buf.toString().substring(8,24));//16位的加密
 
 }catch (NoSuchAlgorithmException e) {   
  e.printStackTrace();
 }
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值