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算法的设计初衷就是单向,即不可逆。import java.security.MessageDigestimport java.security.NoSuchAlgorithmException
public class md5 {
public String str
public void md5s(String plainText) {
try {
MessageDigest md = MessageDigest.getInstance("MD5")
md.update(plainText.getBytes())
byte b[] = md.digest()
int i
StringBuffer buf = new StringBuffer("")
for (int offset = 0offset <b.lengthoffset++) {
i = b[offset]
if (i <0)
i += 256
if (i <16)
buf.append("0")
buf.append(Integer.toHexString(i))
}
str = buf.toString()
System.out.println("result: " + buf.toString())// 32位的加密
System.out.println("result: " + buf.toString().substring(8, 24))// 16位的加密
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
public static void main(String agrs[]) {
md5 md51 = new md5()
md51.md5s("4")//加密4
}
}