平时开发过程中多多少少都需要用到一些加密,平时最常用的就密码加密了,这样做为了防止数据库数据暴露导致密码外泄。平时我们常用的加密有SHA1、MD5、DES、AES、3DES,而且是不可逆的加密方式,其中3DES是国内银行常用的加密方式。不过以前听说咱们北京教授王小云似乎把MD5加密给破解了,也不知道是不是真的,反正说不准。
MD5加密是这样的过程:用户输入密码转入后台,然后把该密码转为MD5后的加密字符,如果这串字符与数据库存的那串字符相匹配那就是正确了,反之错误。所以说数据库存的密码字符串也是加密过的,就算数据信息暴露也取不用户密码信息了。以下是一个JAVA的MD5加密方式,拷贝即可用了
private static void Md5(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 = 0; offset < b.length; offset++) {
i = b[offset];
if(i<0) i+= 256;
if(i<16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
System.out.println("result: " + buf.toString());//32位的加密
System.out.println("result: " + buf.toString().substring(8,24));//16位的加密
}catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}