Java的MD5加密程序
/**
* 对口令字符串使用MD5进行转换,并返回加密后的字符串。
* @param data 口令
* @return String 加密字符串
*/
public static synchronized String getMD5(String data) {
if (data == null) {
return "";
}
if (digest == null) {
try {
digest = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nsae) {
log.error("Failed to load the MD5 MessageDigest. "
+ "Epx will be unable to function normally.", nsae);
} //end catch
} //end if
//Now, compute hash.
digest.update(data.getBytes());
return toHex(digest.digest());
}
/**
*
* 将字节数组转化为十六进制字符串。
* @param hash byte[] 一组需要转换成十六进制的字节数组
* @return String 处理后的十六进制字符串
* @roseuid 3E719FA60336
*/
private static String toHex(byte hash[]) {
StringBuffer buf = new StringBuffer(hash.length * 2);
for (int i = 0; i < hash.length; i++) {
if (((int) hash[ i ] & 0xff) < 0x10) {
buf.append("0");
} //end if
buf.append(Long.toString((int) hash[ i ] & 0xff, 16));
} //end for
return buf.toString();
}
使用Java生成随即码:
/**
* 获得10位随机数
* @return 10位随机数
*/
public static String getRandom(){
String str = "1234567890abcdefghijklmnopqrstuvwxyz";
StringBuffer code = new StringBuffer();
Random random = new java.util.Random();
for (int i = 0; i < 10; i++) {
code.append(str.charAt(random.nextInt(32)));
}
return code.toString();
}