java.security
中的
MessageDigest
类有提供
MD5
和
SHA
算法
.
import
java.security.*;
/**
*
<p>
Title:
自助终端监控
view4.0.0
</p>
*
<p>
Description:
提供
hash
MD5
算法加密
</p>
*
<p>
Copyright:
Copyright
(c)
2006
</p>
*
<p>
Company:
GRGBanking
Co.,Ltd.
</p>
*
@version
1.0
*/
public
class
HashUtil
{
private
static
MessageDigest
digest
=
null
;
public
HashUtil()
{
}
//------------------------------------------------------------------------------
/**
*
对字符串进行
HASH(MD5)
加密,注意,加密结果不可逆
*
@param
data
待加密数据
*
@return
加密结果
*/
public
synchronized
static
final
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
进制字符串
*
@param
bytes
*
@return
*/
public
static
final
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();
}
//------------------------------------------------------------------------------
}