亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? md5.java

?? 使用MD5進行數據加密的算法的實現源碼.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
                md5Memcpy(buffer, inbuf, index, i, inputLen - i);
        }
        
        /*
          md5Final整理和填寫輸出結果
        */
        private void md5Final () {
                byte[] bits = new byte[8];
                int index, padLen;
                ///* Save number of bits */
                Encode (bits, count, 8);
                ///* Pad out to 56 mod 64.
                index = (int)(count[0] >>> 3) & 0x3f;
                padLen = (index < 56) ? (56 - index) : (120 - index);
                md5Update (PADDING, padLen);
                ///* Append length (before padding) */
                md5Update(bits, 8);
                ///* Store state in digest */
                Encode (digest, state, 16);
        }
         
        /* md5Memcpy是一個內部使用的byte數組的塊拷貝函數,從input的inpos開始把len長度的
      字節拷貝到output的outpos位置開始 
        */
        private void md5Memcpy (byte[] output, byte[] input,
                int outpos, int inpos, int len)
        {
                int i;
                for (i = 0; i < len; i++)
                        output[outpos + i] = input[inpos + i];
        }
        
        /*
           md5Transform是MD5核心變換程序,有md5Update調用,block是分塊的原始字節
        */
        private void md5Transform (byte block[]) {
                long a = state[0], b = state[1], c = state[2], d = state[3];
                long[] x = new long[16];
                Decode (x, block, 64);
                /* Round 1 */
                a = FF (a, b, c, d, x[0], S11, 0xd76aa478L); /* 1 */
                d = FF (d, a, b, c, x[1], S12, 0xe8c7b756L); /* 2 */
                c = FF (c, d, a, b, x[2], S13, 0x242070dbL); /* 3 */
                b = FF (b, c, d, a, x[3], S14, 0xc1bdceeeL); /* 4 */
                a = FF (a, b, c, d, x[4], S11, 0xf57c0fafL); /* 5 */
                d = FF (d, a, b, c, x[5], S12, 0x4787c62aL); /* 6 */
                c = FF (c, d, a, b, x[6], S13, 0xa8304613L); /* 7 */
                b = FF (b, c, d, a, x[7], S14, 0xfd469501L); /* 8 */
                a = FF (a, b, c, d, x[8], S11, 0x698098d8L); /* 9 */
                d = FF (d, a, b, c, x[9], S12, 0x8b44f7afL); /* 10 */
                c = FF (c, d, a, b, x[10], S13, 0xffff5bb1L); /* 11 */
                b = FF (b, c, d, a, x[11], S14, 0x895cd7beL); /* 12 */
                a = FF (a, b, c, d, x[12], S11, 0x6b901122L); /* 13 */
                d = FF (d, a, b, c, x[13], S12, 0xfd987193L); /* 14 */
                c = FF (c, d, a, b, x[14], S13, 0xa679438eL); /* 15 */
                b = FF (b, c, d, a, x[15], S14, 0x49b40821L); /* 16 */
                /* Round 2 */
                a = GG (a, b, c, d, x[1], S21, 0xf61e2562L); /* 17 */
                d = GG (d, a, b, c, x[6], S22, 0xc040b340L); /* 18 */
                c = GG (c, d, a, b, x[11], S23, 0x265e5a51L); /* 19 */
                b = GG (b, c, d, a, x[0], S24, 0xe9b6c7aaL); /* 20 */
                a = GG (a, b, c, d, x[5], S21, 0xd62f105dL); /* 21 */
                d = GG (d, a, b, c, x[10], S22, 0x2441453L); /* 22 */
                c = GG (c, d, a, b, x[15], S23, 0xd8a1e681L); /* 23 */
                b = GG (b, c, d, a, x[4], S24, 0xe7d3fbc8L); /* 24 */
                a = GG (a, b, c, d, x[9], S21, 0x21e1cde6L); /* 25 */
                d = GG (d, a, b, c, x[14], S22, 0xc33707d6L); /* 26 */
                c = GG (c, d, a, b, x[3], S23, 0xf4d50d87L); /* 27 */
                b = GG (b, c, d, a, x[8], S24, 0x455a14edL); /* 28 */
                a = GG (a, b, c, d, x[13], S21, 0xa9e3e905L); /* 29 */
                d = GG (d, a, b, c, x[2], S22, 0xfcefa3f8L); /* 30 */
                c = GG (c, d, a, b, x[7], S23, 0x676f02d9L); /* 31 */
                b = GG (b, c, d, a, x[12], S24, 0x8d2a4c8aL); /* 32 */
                /* Round 3 */
                a = HH (a, b, c, d, x[5], S31, 0xfffa3942L); /* 33 */
                d = HH (d, a, b, c, x[8], S32, 0x8771f681L); /* 34 */
                c = HH (c, d, a, b, x[11], S33, 0x6d9d6122L); /* 35 */
                b = HH (b, c, d, a, x[14], S34, 0xfde5380cL); /* 36 */
                a = HH (a, b, c, d, x[1], S31, 0xa4beea44L); /* 37 */
                d = HH (d, a, b, c, x[4], S32, 0x4bdecfa9L); /* 38 */
                c = HH (c, d, a, b, x[7], S33, 0xf6bb4b60L); /* 39 */
                b = HH (b, c, d, a, x[10], S34, 0xbebfbc70L); /* 40 */
                a = HH (a, b, c, d, x[13], S31, 0x289b7ec6L); /* 41 */
                d = HH (d, a, b, c, x[0], S32, 0xeaa127faL); /* 42 */
                c = HH (c, d, a, b, x[3], S33, 0xd4ef3085L); /* 43 */
                b = HH (b, c, d, a, x[6], S34, 0x4881d05L); /* 44 */
                a = HH (a, b, c, d, x[9], S31, 0xd9d4d039L); /* 45 */
                d = HH (d, a, b, c, x[12], S32, 0xe6db99e5L); /* 46 */
                c = HH (c, d, a, b, x[15], S33, 0x1fa27cf8L); /* 47 */
                b = HH (b, c, d, a, x[2], S34, 0xc4ac5665L); /* 48 */
                /* Round 4 */
                a = II (a, b, c, d, x[0], S41, 0xf4292244L); /* 49 */
                d = II (d, a, b, c, x[7], S42, 0x432aff97L); /* 50 */
                c = II (c, d, a, b, x[14], S43, 0xab9423a7L); /* 51 */
                b = II (b, c, d, a, x[5], S44, 0xfc93a039L); /* 52 */
                a = II (a, b, c, d, x[12], S41, 0x655b59c3L); /* 53 */
                d = II (d, a, b, c, x[3], S42, 0x8f0ccc92L); /* 54 */
                c = II (c, d, a, b, x[10], S43, 0xffeff47dL); /* 55 */
                b = II (b, c, d, a, x[1], S44, 0x85845dd1L); /* 56 */
                a = II (a, b, c, d, x[8], S41, 0x6fa87e4fL); /* 57 */
                d = II (d, a, b, c, x[15], S42, 0xfe2ce6e0L); /* 58 */
                c = II (c, d, a, b, x[6], S43, 0xa3014314L); /* 59 */
                b = II (b, c, d, a, x[13], S44, 0x4e0811a1L); /* 60 */
                a = II (a, b, c, d, x[4], S41, 0xf7537e82L); /* 61 */
                d = II (d, a, b, c, x[11], S42, 0xbd3af235L); /* 62 */
                c = II (c, d, a, b, x[2], S43, 0x2ad7d2bbL); /* 63 */
                b = II (b, c, d, a, x[9], S44, 0xeb86d391L); /* 64 */
                state[0] += a;
                state[1] += b;
                state[2] += c;
                state[3] += d;
        }
        
        /*Encode把long數組按順序拆成byte數組,因為java的long類型是64bit的,
          只拆低32bit,以適應原始C實現的用途
        */
        private void Encode (byte[] output, long[] input, int len) {
                int i, j;
                for (i = 0, j = 0; j < len; i++, j += 4) {
                        output[j] = (byte)(input[i] & 0xffL);
                        output[j + 1] = (byte)((input[i] >>> 8) & 0xffL);
                        output[j + 2] = (byte)((input[i] >>> 16) & 0xffL);
                        output[j + 3] = (byte)((input[i] >>> 24) & 0xffL);
                }
        }
        /*Decode把byte數組按順序合成成long數組,因為java的long類型是64bit的,
          只合成低32bit,高32bit清零,以適應原始C實現的用途
        */
        private void Decode (long[] output, byte[] input, int len) {
                int i, j;

                for (i = 0, j = 0; j < len; i++, j += 4)
                        output[i] = b2iu(input[j]) |
                                (b2iu(input[j + 1]) << 8) |
                                (b2iu(input[j + 2]) << 16) |
                                (b2iu(input[j + 3]) << 24);
                return;
        }
       
        /*
          b2iu是我寫的一個把byte按照不考慮正負號的原則的"升位"程序,因為java沒有unsigned運算
        */
        public static long b2iu(byte b) {
                return b < 0 ? b & 0x7F + 128 : b;
        }
        
/*byteHEX(),用來把一個byte類型的數轉換成十六進制的ASCII表示,
 因為java中的byte的toString無法實現這一點,我們又沒有C語言中的
 sprintf(outbuf,"%02X",ib)
*/
        public static String byteHEX(byte ib) {
                char[] Digit = { '0','1','2','3','4','5','6','7','8','9',
                'A','B','C','D','E','F' };
                char [] ob = new char[2];
                ob[0] = Digit[(ib >>> 4) & 0X0F];
                ob[1] = Digit[ib & 0X0F];
                String s = new String(ob);
                return s;
        }
        public static void main(String args[]) {

                MD5 m = new MD5();
                if (Array.getLength(args) == 0) {   //如果沒有參數,執行標準的Test Suite
                
                        System.out.println("MD5 Test suite:");
                System.out.println("MD5(\"\"):"+m.getMD5ofStr(""));
                System.out.println("MD5(\"a\"):"+m.getMD5ofStr("a"));
                System.out.println("MD5(\"abc\"):"+m.getMD5ofStr("abc"));
                System.out.println("MD5(\"message digest\"):"+m.getMD5ofStr("message digest"));
                System.out.println("MD5(\"abcdefghijklmnopqrstuvwxyz\"):"+
                        m.getMD5ofStr("abcdefghijklmnopqrstuvwxyz"));
                System.out.println("MD5(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\"):"+
                      m.getMD5ofStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"));
                }
                else 
                      System.out.println("MD5(" + args[0] + ")=" + m.getMD5ofStr(args[0]));
                
         
        }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品18久久久久久久久久久久| 亚洲国产日韩综合久久精品| 欧美日韩一区二区在线视频| 成人在线视频一区二区| 激情综合网天天干| 久久精品国产久精国产爱| 奇米777欧美一区二区| 日韩av一二三| 日韩国产一二三区| 久久爱www久久做| 国产综合色视频| 国产传媒久久文化传媒| 成人精品在线视频观看| 成人精品国产福利| 色呦呦网站一区| 欧美日韩国产一区二区三区地区| 在线免费一区三区| 欧美一区二区三区色| 精品国产免费人成电影在线观看四季| 精品国产一区二区精华| 国产清纯白嫩初高生在线观看91 | 久久精品一区四区| 国产午夜精品久久久久久久| 日本一区二区三区四区在线视频 | 精品三级在线看| 国产亚洲一区二区在线观看| 中文字幕一区二区视频| 亚洲国产日日夜夜| 国产精品伊人色| 在线视频亚洲一区| 精品国产自在久精品国产| 国产精品免费网站在线观看| 亚洲一区影音先锋| 韩国欧美一区二区| 91成人在线观看喷潮| 日韩欧美黄色影院| 亚洲日本青草视频在线怡红院| 日韩和欧美的一区| 不卡视频一二三四| 精品女同一区二区| 亚洲乱码国产乱码精品精小说 | 欧美日韩国产123区| 337p粉嫩大胆噜噜噜噜噜91av | 久久女同性恋中文字幕| 亚洲四区在线观看| 激情深爱一区二区| 欧美日韩精品免费观看视频 | 亚洲日本乱码在线观看| 极品美女销魂一区二区三区| 欧美午夜电影在线播放| 亚洲国产精品精华液ab| 久久99精品久久只有精品| 在线一区二区观看| 国产农村妇女毛片精品久久麻豆 | 精品国产欧美一区二区| 亚洲精品免费播放| 成人av午夜电影| 精品国产一区久久| 男女性色大片免费观看一区二区 | 在线电影一区二区三区| 国产精品久久久久桃色tv| 另类成人小视频在线| 欧美一区二区视频免费观看| 亚洲线精品一区二区三区八戒| 成人禁用看黄a在线| 国产人久久人人人人爽| 国产伦精品一区二区三区视频青涩 | 欧美精品一二三区| 亚洲精品免费在线观看| 波多野结衣精品在线| 国产片一区二区三区| 国产精品亚洲午夜一区二区三区| 日韩精品一区国产麻豆| 亚洲sss视频在线视频| 色婷婷一区二区三区四区| 国产精品成人一区二区艾草| 国产精品一区久久久久| 亚洲精品在线观看网站| 精品亚洲porn| 久久亚洲捆绑美女| 福利一区福利二区| 国产精品电影院| 91蜜桃网址入口| 亚洲色图一区二区三区| 91久久精品一区二区二区| 亚洲一卡二卡三卡四卡| 91精品国模一区二区三区| 免费在线一区观看| 久久久www成人免费无遮挡大片| 国产成人综合自拍| 一区二区在线免费观看| 欧美日韩国产大片| 久久精品99国产精品| 国产日本欧洲亚洲| 欧洲一区二区三区在线| 蜜乳av一区二区| 国产日韩三级在线| 色婷婷久久综合| 亚洲成av人在线观看| 精品国产乱码久久久久久闺蜜 | 一本到三区不卡视频| 图片区日韩欧美亚洲| 精品国产伦一区二区三区观看体验| 韩国精品久久久| 亚洲天堂2016| 欧美大片免费久久精品三p| 国产99久久久国产精品免费看| 亚洲欧美日韩在线| 欧美α欧美αv大片| bt欧美亚洲午夜电影天堂| 偷窥少妇高潮呻吟av久久免费| 日韩你懂的电影在线观看| 白白色 亚洲乱淫| 日本不卡一二三| 亚洲日本一区二区三区| 精品国产网站在线观看| 在线一区二区三区四区五区| 国产一二精品视频| 亚洲国产日韩在线一区模特| 久久视频一区二区| 欧美猛男超大videosgay| 粉嫩高潮美女一区二区三区| 日日摸夜夜添夜夜添精品视频| 国产日韩欧美综合一区| 日韩午夜在线观看| 欧美影院精品一区| 不卡欧美aaaaa| 精品制服美女丁香| 午夜电影一区二区三区| 亚洲人成小说网站色在线 | 国产精品国产馆在线真实露脸| 在线成人免费观看| 日本精品视频一区二区| 国产成人8x视频一区二区| 免费的成人av| 亚洲成人av中文| 一区二区日韩av| 国产精品理伦片| 日本一区二区成人在线| 久久精品视频一区二区| 欧美一区二区三区视频在线| 欧美日韩亚洲综合在线 | 亚洲第一综合色| 亚洲欧美成aⅴ人在线观看| 国产欧美日本一区二区三区| 日韩女同互慰一区二区| 日韩丝袜情趣美女图片| 在线播放中文字幕一区| 欧美日韩一区二区不卡| 欧美日韩国产123区| 欧美三级三级三级| 欧美午夜精品电影| 在线观看日韩毛片| 欧美亚洲国产一区二区三区 | 亚洲成人午夜电影| 亚洲h精品动漫在线观看| 亚洲h动漫在线| 蜜臀久久99精品久久久久宅男| 日本不卡高清视频| 国产自产高清不卡| 国产精品一区三区| av日韩在线网站| 色综合天天综合给合国产| 色老汉一区二区三区| 在线欧美小视频| 欧美一区二区三区视频| 久久日韩精品一区二区五区| 久久久99精品免费观看| 国产精品美女www爽爽爽| 亚洲天天做日日做天天谢日日欢 | aaa亚洲精品一二三区| 99精品热视频| 在线日韩一区二区| 日韩欧美国产三级电影视频| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品欧美综合在线| 一区二区三区在线高清| 日韩成人精品在线| 成人看片黄a免费看在线| 色94色欧美sute亚洲线路一ni| 欧美亚男人的天堂| 久久久久久久久久久久电影| 亚洲人成亚洲人成在线观看图片| 亚洲二区在线视频| 国产老肥熟一区二区三区| 99久久99久久精品国产片果冻| 欧美日韩一区二区三区高清| 久久欧美中文字幕| 午夜成人在线视频| 国产馆精品极品| 欧美在线观看一二区| 久久精品男人天堂av| 一区二区三区国产| 国产精品一线二线三线| 欧美四级电影网| 国产免费成人在线视频| 男女男精品网站| 日本韩国精品在线| 国产亚洲成年网址在线观看| 日本午夜一区二区|