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=
发布了274 篇原创文章 · 获赞 95 · 访问量 50万+

猜你喜欢

转载自blog.csdn.net/chinabestchina/article/details/105212468
今日推荐