A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘郑瑞 中级黑马   /  2013-1-23 13:12  /  1842 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

MD5加密当今是非常流行的,银行,企业账号采用的都是20次以上的MD5加密。这里,必须简单的学习一下。
import  java.security.*;   
import  java.security.spec.*;   
   
class  MD5_test {   
public   final   static  String MD5(String s) {   
  char  hexDigits[] = {  '0' ,  '1' ,  '2' ,  '3' ,  '4' ,  '5' ,  '6' ,  '7' ,  '8'

,  '9' ,   
    'a' ,  'b' ,  'c' ,  'd' ,  'e' ,  'f'  };   
  try  {   
   byte [] strTemp = s.getBytes();   
   MessageDigest mdTemp = MessageDigest.getInstance("MD5" );   
   mdTemp.update(strTemp);   
   byte [] md = mdTemp.digest();   
   int  j = md.length;   
   char  str[] =  new   char [j *  2 ];   
   int  k =  0 ;   
   for  ( int  i =  0 ; i < j; i++) {   
    byte  byte0 = md[i];   
    str[k++] = hexDigits[byte0 >>> 4  &  0xf ];   
    str[k++] = hexDigits[byte0 & 0xf ];   
   }   
   return   new  String(str);   
  } catch  (Exception e) {   
   return   null ;   
  }   
 }   
   
 public   static   void  main(String[] args) {   
  // MD5_Test aa = new MD5_Test();   
  System.out.print(MD5_test.MD5("b" ));   
 }   
}

3 个回复

倒序浏览
由于MD5的弱点被不断发现以及计算机能力不断的提升,通过碰撞的方法有可能构造两个具有相同MD5的信息,使MD5算法在目前的安全环境下有一点落伍。
做加密其实MD5与DES相结合的方式是不错的选择。因为DES加密可逆,较之MD5难破解些,一般银行卡账户使用的就是这种算法;另外MD5生成固定的32位密钥,便于在数据库中存储,字段长度不变,不会浪费空间。
回复 使用道具 举报
学校里好像讲过是对称还是不对称的来的?
ps:又是我家林峰~~
回复 使用道具 举报
马金池 发表于 2013-1-23 16:00
学校里好像讲过是对称还是不对称的来的?
ps:又是我家林峰~~

既非对称也非不对称。 严格意义上讲MD5不能叫做一种加密算法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马