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加密后的结果

package endecrypt

02.

03.import java.io.UnsupportedEncodingException

04.import java.security.MessageDigest

05.import java.security.NoSuchAlgorithmException

06.

07./**

08. * 采用MD5加密解密

09. * @author tfq

10. * @datetime 2011-10-13

11. */

12.public class MD5Util {

13.

14./***

15. * MD5加码 生成32位md5码

16. */

17.public static String string2MD5(String inStr){

18.MessageDigest md5 = null

19.try{

20.md5 = MessageDigest.getInstance("MD5")

21.}catch (Exception e){

22.System.out.println(e.toString())

23.e.printStackTrace()

24.return ""

25.}

26.char[] charArray = inStr.toCharArray()

27.byte[] byteArray = new byte[charArray.length]

28.

29.for (int i = 0i <charArray.lengthi++)

30.byteArray[i] = (byte) charArray[i]

31.byte[] md5Bytes = md5.digest(byteArray)

32.StringBuffer hexValue = new StringBuffer()

33.for (int i = 0i <md5Bytes.lengthi++){

34.int val = ((int) md5Bytes[i]) &0xff

35.if (val <16)

36.hexValue.append("0")

37.hexValue.append(Integer.toHexString(val))

38.}

39.return hexValue.toString()

40.

41.}

42.

43./**

44. * 加密解密算法 执行一次加密,两次解密

45. */

46.public static String convertMD5(String inStr){

47.

48.char[] a = inStr.toCharArray()

49.for (int i = 0i <a.lengthi++){

50.a[i] = (char) (a[i] ^ 't')

51.}

52.String s = new String(a)

53.return s

54.

55.}

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