java 中如何进行md5加密

Python015

java 中如何进行md5加密,第1张

JDK里面有一个java.security.MessageDigest类,这个类就是用来加密的。

加密代码如下:

String token = System.currentTimeMillis()+new Random().nextInt()+""

try {

MessageDigest md = MessageDigest.getInstance("MD5")

byte[] md5 = md.digest(token.getBytes())

} catch (Exception e) {

throw new RuntimeException(e)

}

这个byte类型的数组就是使用MD5加密后的结果

有必要的,md5就是为了防止人偷窥,而当密码很短的时候,利用暴力搜索也比较容易搜索到,只有密码强度足够的情况下才有意义,你想转换也就没那么容易了。md5类hash算法的设计初衷就是单向,即不可逆。

给你解释一下for里面这段代码

byte byte0 = md[i]//取得md数组中第i个元素

str[k++] = hexDigits[byte0 >>>4 & 0xf ]取得byte0的前四位,然后找到转化成16进制字符,如果byte0为10001000(二进制)那么前四位就是1000,十进制就是8,而 hexDigits[8]就=‘8’

str[k++] = hexDigits[byte0 &0xf ]//同理取得byte0的后四位,转化成16进制字符。