java中消息摘要MD5與SHA-1

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=
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章