黑马程序员技术交流社区
标题:
一个用MD5加密的小demo
[打印本页]
作者:
刘郑瑞
时间:
2013-1-23 13:12
标题:
一个用MD5加密的小demo
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" ));
}
}
作者:
低调的奢华
时间:
2013-1-23 13:28
由于MD5的弱点被不断发现以及计算机能力不断的提升,通过碰撞的方法有可能构造两个具有相同MD5的信息,使MD5算法在目前的安全环境下有一点落伍。
做加密其实MD5与DES相结合的方式是不错的选择。因为DES加密可逆,较之MD5难破解些,一般银行卡账户使用的就是这种算法;另外MD5生成固定的32位密钥,便于在数据库中存储,字段长度不变,不会浪费空间。
作者:
马金池
时间:
2013-1-23 16:00
学校里好像讲过是对称还是不对称的来的?
ps:又是我家林峰~~
作者:
可见
时间:
2013-1-23 16:36
马金池 发表于 2013-1-23 16:00
学校里好像讲过是对称还是不对称的来的?
ps:又是我家林峰~~
既非对称也非不对称。 严格意义上讲MD5不能叫做一种加密算法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2