在java中可以使用java.security.MessageDigest类,进行md5加密
常用场景:
一般网站存储用户密码时,不会存储明文密码,最少也要经过一次md5加密。
本案只介绍使用java.security.MessageDigest,对数据进行加密操作。该方法是单向的加密算法
详细代码如下所表示:
/**对语句进行单向加密
* <功能详细描述>
* @param message 需要加密的信息
* @return
* @throws NoSuchAlgorithmException
* @throws IOException [参数说明]
*
* @return byte[] [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public byte[] encrypt(String message)
throws NoSuchAlgorithmException, IOException
{
// 获取MessageDigest实例
MessageDigest encrypt = MessageDigest.getInstance("md5");
// 添加需要加密的信息
encrypt.update(message.getBytes());
// 对信息信息加密
byte[] encryptMD5 = encrypt.digest();
//获得加密算法
System.out.println(encrypt.getAlgorithm());
//得到加密算法的长度
System.out.println(encrypt.getDigestLength());
return encryptMD5;
/**
* 将16位byte[] 转换为32位String
*
* @param buffer
* @return
*/
private String toHex(byte buffer[]) {
StringBuffer sb = new StringBuffer(buffer.length * 2);
for (int i = 0; i < buffer.length; i++) {
sb.append(Character.forDigit((buffer[i] & 240) >> 4, 16));
sb.append(Character.forDigit(buffer[i] & 15, 16));
}
return sb.toString();
}
public static void main(String[] args)
throws NoSuchAlgorithmException, IOException
{
SecurityTest t = new SecurityTest();
//得到加密数组
byte[] data = t.encrypt("我的测试信息!");
//转为32位16进制字符串
String baseResult = SecurityTest.toHex(data);
System.out.println("baseResult"+baseResult);
来源:oschina
链接:https://my.oschina.net/u/147181/blog/164890