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=