消息摘要算法(MD5、SHA)

常用的Java加密技术和核心代码系列:

Base64以及关于Base64遇到的坑   https://blog.csdn.net/haponchang/article/details/106094115

消息摘要算法  https://blog.csdn.net/haponchang/article/details/106096542

对称加密(DES、3DES、AES、PBE) https://blog.csdn.net/haponchang/article/details/106096766

非对称加密(RSA、DH) https://blog.csdn.net/haponchang/article/details/106097998

数字签名证书 https://blog.csdn.net/haponchang/article/details/106098779

概念

        消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到哈希值相同的两个不同的输入消息,在计算上是不可能的。所以数据的哈希值,即消息摘要,可以检验数据的完整性。
        通俗点说,就是通过消息摘要算法产生一段String。传输内容进行消息摘要处理后的内容,这样就算服务器被攻破,Hack也无法知道用户真实的内容是什么。

        常见的有MD5和SHA。

 

MD5

    public String encode(String src){
        try
        {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] encodeBytes = md.digest(src.getBytes());

            return Hex.encodeHexString(encodeBytes);
        }
        catch (NoSuchAlgorithmException e)
        {
            e.printStackTrace();
        }
        return null;
    }

    public String decode(String src){
        throw new RuntimeException("MD5 no decode");
    }

 

SHA

    public String encode(String src){
        try
        {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(src.getBytes());
            return Hex.encodeHexString(md.digest());
        }
        catch (NoSuchAlgorithmException e)
        {
            e.printStackTrace();
        }
        return null;
    }

    public String decode(String src){
        throw new RuntimeException("SHA no decode");
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章