java中消息摘要MD5与SHA-1
一、简介
消息摘要是根据一段文本信息,生成固定长度的摘要,不同文本生成的摘要是不同。这里介绍java中消息摘要使用。
二、知识点
消息摘要可用来验证文本信息的完整性,一旦文本信息被篡改,那么摘要也会改变。目前常用的消息摘要有md5和sha-1两种。
2.1 md5
md5,即是message digest algorithm 5,生成的摘要长度是128位;
2.2 sha-1
sha-1,即source hash algorithm 1,它是基于md4算法来的,生成的摘要长度是160位,相于md5,它更安全,当然计算更复杂,运行更慢些。
三、实例
public class MessageDigestMain {
public static void main(String[] args) {
String source = "study hard and make progress everyday";
System.out.println("message source : " + source);
System.out.println("md5 digest result : " + base64Encode(md5Digest(source)));
System.out.println("sha1 digest result : " + base64Encode(sha1Digest(source)));
}
//md5生成消息摘要
static byte[] md5Digest(String source) {
try {
MessageDigest md = MessageDigest.getInstance("md5");
return md.digest(source.getBytes("utf-8"));
} catch (Exception e) {
}
return null;
}
//sha1生成消息摘要
static byte[] sha1Digest(String source) {
try {
MessageDigest md = MessageDigest.getInstance("sha1");
return md.digest(source.getBytes("utf-8"));
} catch (Exception e) {
}
return null;
}
static String base64Encode(byte[] source) {
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(source);
}
}
运行结果:
message source : study hard and make progress everyday
md5 digest result : r2b+9FpR8PA1jwj9ByxeXQ==
sha1 digest result : fYvfHWRUu6o8tzzNzvWwM0O2RXo=