java MD5加密,解释解释!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java MD5加密,解释解释!相关的知识,希望对你有一定的参考价值。
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 ]; 解释一下for循环作用!!!!
return new String(str);
catch (Exception e)
return null ;
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进制字符。追问
byte [] md = mdTemp.digest();加密之后为什么还要转化为十六进制啊?
追答因为md是字节类型的数组,而MD5是一串十六进制字符,所以要进行转换的
参考技术A 我也不懂,你会了帮我一下哈!以上是关于java MD5加密,解释解释!的主要内容,如果未能解决你的问题,请参考以下文章