java.security中的MessageDigest类有提供MD5和SHA算法.
import java.security.*;
/**
*<p>Title:自助终端监控view4.0.0</p>
*<p>Description:提供hashMD5算法加密</p>
*<p>Copyright:Copyright(c)2006</p>
*<p>Company:GRGBankingCo.,Ltd.</p>
*@version1.0
*/
publicclass HashUtil
{
privatestatic MessageDigest digest = null;
public HashUtil()
{
}
//------------------------------------------------------------------------------
/**
*对字符串进行HASH(MD5)加密,注意,加密结果不可逆
*@paramdata待加密数据
*@return加密结果
*/
public synchronizedstaticfinal String hash(String data)
{
if (digest == null)
{
try
{
digest = MessageDigest.getInstance("MD5");
}
catch (NoSuchAlgorithmException nsae)
{
System.err.println("Failed to load the MD5 MessageDigest. ");
nsae.printStackTrace();
}
}
digest.update(data.getBytes());
return encodeHex(digest.digest());
}
//------------------------------------------------------------------------------
/**
*将数组转换成16进制字符串
*@parambytes
*@return
*/
publicstaticfinal String encodeHex(byte[] bytes)
{
StringBuffer buf = new StringBuffer(bytes.length * 2);
for (int i = 0; i < bytes.length; i++)
{
if (((int) bytes[i] & 0xff) < 0x10)
{
buf.append("0");
}
buf.append(Long.toString((int) bytes[i] & 0xff, 16));
}
return buf.toString();
}
//------------------------------------------------------------------------------
}
本文介绍了一种使用Java的MessageDigest类实现MD5加密的方法。通过具体代码展示了如何对字符串进行MD5加密处理,并提供了将字节数组转换为16进制字符串的辅助函数。
1208

被折叠的 条评论
为什么被折叠?



