国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

短鏈接算法實現--加鹽hash

ssshooter / 2693人閱讀

摘要:如果僅僅只是通過直接加密,不安全。所以為了加入靜態鹽和動態鹽加密的長度我設置的位加密的取三位。用來加強短鏈接檢查這里輸出查看下把。存到數據庫和上面的檢查鹽一樣靜態鹽檢查檢查完畢。拿到原始但是這個算法還是有可能會有沖突。

如果僅僅只是通過MD5直接加密,不安全。彩虹表很容易破解。所以為了加入靜態鹽和動態鹽

   public String encreptUrl(String url){
        try {
            byte[] salt = "JKDSPnBKYJ2E7kEg9mYSteK4AXE8ywUB96y8gjDFhfy".getBytes("UTF-8");
            String checkSalt = "C2NkXy3ECJn9AcMB976DnBKYJ2E7kEg9mYSte";
            MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
            messageDigest.reset();
            messageDigest.update(salt);
            byte[] bytes = url.getBytes("UTF-8");
            byte[] encryptUrl = messageDigest.digest(bytes);
            Base64 base64 = new Base64(true);
            String semiFinishedProducts = new String(base64.encode(encryptUrl));
            //加密url的長度我設置的6位. 加密的url取三位。剩下三位分別給靜態鹽1位和動態鹽2位
            String urlKey = semiFinishedProducts.substring(0,3);
            //位置可以在0-32位之間。這里可以選擇位置。但是解密的時候就必須用同樣的位置
            String staticSalt = md5Util(urlKey+checkSalt).substring(4,5);
            String dynaSalt = md5Util(""+UUID.randomUUID()).substring(5,7);
            String encrypted = urlKey+staticSalt+dynaSalt;
            //標記量。用來加強短鏈接檢查.這里輸出查看下
            String sig = md5Util(encrypted);
            String domain = "www.baidu.com/";
            String subDomain = "demo/";
            String encryptedUrl = domain+subDomain+encrypted;
            //把 sig ,encryptedUrl ,originalUrl,key。存到數據庫
            return encryptedUrl;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
       return null;
    }
    public String getOriginUrl(String encrpetUrl,String sig){
        encrpetUrl = encrpetUrl.substring(encrpetUrl.lastIndexOf("/")+1);
        String key = encrpetUrl.substring(0,3);
        String staticSalt = encrpetUrl.substring(3,4);
        //和上面的檢查鹽一樣
        String checkSalt = "C2NkXy3ECJn9AcMB976DnBKYJ2E7kEg9mYSte";
        //靜態鹽檢查
        String correctStaticSalt = md5Util(key+checkSalt).substring(4,5);
        if (!staticSalt.equals(correctStaticSalt)){
            return "error";
        }
        String correctSig = md5Util(encrpetUrl);
        if (!sig.equals(correctSig)){
            return "error";
        }
        //檢查完畢。 沒問題就通過key查詢數據庫。拿到原始url
        return "true";
    }
    public String md5Util(String semiFinishedProducts){
        MessageDigest lDigest = null;
        try {
            lDigest = MessageDigest.getInstance("MD5");
            lDigest.update(semiFinishedProducts.getBytes());
            BigInteger lHashInt = new BigInteger(1, lDigest.digest());
            return String.format("%1$032X", lHashInt);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

但是這個算法還是有可能會有hash沖突。而且位數越短越可能發生。最好設置6位以上
解決方法:覆蓋數據庫方法或者重新計算

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77380.html

相關文章

  • 網址原理和實現

    摘要:背景介紹相信很多人手機上都收到過一些營銷短信,短信里面有時候會附帶一些網址,如下圖這些網址往往都是非常短,但是當我們打開之后,如果你仔細觀察,中間會有跳轉,最終瀏覽器地址欄顯示的網址并不是你短信里面看到的網址,這就是短網址原理和應用短網1.背景介紹 相信很多人手機上都收到過一些營銷短信,短信里面有時候會附帶一些網址,如下圖 showImg(https://user-gold-cdn.xitu...

    sihai 評論0 收藏0
  • 漫話密碼存儲

    摘要:通俗一點說就是彩虹表犧牲了一點計算速度,換來的好處是較少的空間存儲更多的密碼數據。關于鹽的使用有一點需要說明加鹽的目的是為了增加提前構造字典和彩虹表的代價,并不是為了加密或增加密碼的計算復雜性。 背景 密碼是用來進行鑒權(身份認證)一種手段,說白了就是證明你是誰。一般鑒權都可以總結為下面3種形式: 你知道什么? (如密碼,密碼提示問題等) 你有什么? (如信用卡,token卡等) 你...

    Godtoy 評論0 收藏0
  • nodejs-md5加鹽到解密比對

    摘要:加密工具模塊提供了加密功能,包括對的哈希加密解密簽名以及驗證功能的一整套封裝。當然也是優缺點的加密相同的字符是結果都是相同的碼,會出現撞庫的風險。 nodejs-crypto 加密工具 crypto 模塊提供了加密功能,包括對 OpenSSL 的哈希、MD5、HMAC、加密、解密、簽名、以及驗證功能的一整套封裝。 crypto 常用的MD5 MD5 是一種不可逆的加密算法,目前是最牢靠...

    MasonEast 評論0 收藏0
  • 鏈接原理分析

    摘要:舉個例子,第一個進來的鏈接發號器發號,對應的短鏈接為,第二個進來的鏈接發號器發號,對應的短鏈接為,以此類推。這樣一來會導致一條長鏈接對應多條短鏈接的情況出現,不僅浪費存儲空間,又浪費發號器資源。 1. 什么是短鏈接 顧名思義,短鏈接即是長度較短的網址。通過短鏈接技術,我們可以將長度較長的鏈接壓縮成較短的鏈接。并通過跳轉的方式,將用戶請求由短鏈接重定向到長鏈接上去。短鏈接主要用在諸如微博...

    SexySix 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<