消息摘要算法(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");
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章