⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 md5.java~15~

📁 短信网关发送接受平台。
💻 JAVA~15~
字号:
package smscenter;// FrontEnd Plus for JAD// DeCompiled : MD5.classpublic class MD5{    MD5State state;    MD5State finals;    static byte padding[] = {        -128, 0, 0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0    };public static void main(String[] args){    MD5 md5 = new MD5();    MD5State  state = new MD5State();    md5.Init() ;    md5.Update("rong");//    state = md5.Final();    byte[] bytes = null;    bytes = md5.Final();    String str = Utility.toHexString(bytes);    System.out.println(str);    md5.Init() ;    md5.Update(bytes);    //bytes[] bytes2 = md5.Decode(bytes,0,bytes.length);}    public synchronized void Init()    {        state = new MD5State();        finals = null;    }    public MD5()    {        Init();    }    public MD5(Object obj)    {        this();        Update(obj.toString());    }    private int rotate_left(int i, int j)    {        return i << j | i >>> 32 - j;    }    private int uadd(int i, int j)    {        long l = (long)i & 0xffffffffL;        long l1 = (long)j & 0xffffffffL;        l += l1;        return (int)(l & 0xffffffffL);    }    private int uadd(int i, int j, int k)    {        return uadd(uadd(i, j), k);    }    private int uadd(int i, int j, int k, int l)    {        return uadd(uadd(i, j, k), l);    }    private int FF(int i, int j, int k, int l, int i1, int j1, int k1)    {        i = uadd(i, j & k | ~j & l, i1, k1);        return uadd(rotate_left(i, j1), j);    }    private int GG(int i, int j, int k, int l, int i1, int j1, int k1)    {        i = uadd(i, j & l | k & ~l, i1, k1);        return uadd(rotate_left(i, j1), j);    }    private int HH(int i, int j, int k, int l, int i1, int j1, int k1)    {        i = uadd(i, j ^ k ^ l, i1, k1);        return uadd(rotate_left(i, j1), j);    }    private int II(int i, int j, int k, int l, int i1, int j1, int k1)    {        i = uadd(i, k ^ (j | ~l), i1, k1);        return uadd(rotate_left(i, j1), j);    }    private int[] Decode(byte abyte0[], int i, int j)    {        int ai[] = new int[16];        int k;        int l = k = 0;        for(; k < i; k += 4)        {            ai[l] = abyte0[k + j] & 0xff | (abyte0[k + 1 + j] & 0xff) << 8 | (abyte0[k + 2 + j] & 0xff) << 16 | (abyte0[k + 3 + j] & 0xff) << 24;            l++;        }        return ai;    }    private void Transform(MD5State md5state, byte abyte0[], int i)    {        int j = md5state.state[0];        int k = md5state.state[1];        int l = md5state.state[2];        int i1 = md5state.state[3];        int ai[] = Decode(abyte0, 64, i);        j = FF(j, k, l, i1, ai[0], 7, 0xd76aa478);        i1 = FF(i1, j, k, l, ai[1], 12, 0xe8c7b756);        l = FF(l, i1, j, k, ai[2], 17, 0x242070db);        k = FF(k, l, i1, j, ai[3], 22, 0xc1bdceee);        j = FF(j, k, l, i1, ai[4], 7, 0xf57c0faf);        i1 = FF(i1, j, k, l, ai[5], 12, 0x4787c62a);        l = FF(l, i1, j, k, ai[6], 17, 0xa8304613);        k = FF(k, l, i1, j, ai[7], 22, 0xfd469501);        j = FF(j, k, l, i1, ai[8], 7, 0x698098d8);        i1 = FF(i1, j, k, l, ai[9], 12, 0x8b44f7af);        l = FF(l, i1, j, k, ai[10], 17, -42063);        k = FF(k, l, i1, j, ai[11], 22, 0x895cd7be);        j = FF(j, k, l, i1, ai[12], 7, 0x6b901122);        i1 = FF(i1, j, k, l, ai[13], 12, 0xfd987193);        l = FF(l, i1, j, k, ai[14], 17, 0xa679438e);        k = FF(k, l, i1, j, ai[15], 22, 0x49b40821);        j = GG(j, k, l, i1, ai[1], 5, 0xf61e2562);        i1 = GG(i1, j, k, l, ai[6], 9, 0xc040b340);        l = GG(l, i1, j, k, ai[11], 14, 0x265e5a51);        k = GG(k, l, i1, j, ai[0], 20, 0xe9b6c7aa);        j = GG(j, k, l, i1, ai[5], 5, 0xd62f105d);        i1 = GG(i1, j, k, l, ai[10], 9, 0x2441453);        l = GG(l, i1, j, k, ai[15], 14, 0xd8a1e681);        k = GG(k, l, i1, j, ai[4], 20, 0xe7d3fbc8);        j = GG(j, k, l, i1, ai[9], 5, 0x21e1cde6);        i1 = GG(i1, j, k, l, ai[14], 9, 0xc33707d6);        l = GG(l, i1, j, k, ai[3], 14, 0xf4d50d87);        k = GG(k, l, i1, j, ai[8], 20, 0x455a14ed);        j = GG(j, k, l, i1, ai[13], 5, 0xa9e3e905);        i1 = GG(i1, j, k, l, ai[2], 9, 0xfcefa3f8);        l = GG(l, i1, j, k, ai[7], 14, 0x676f02d9);        k = GG(k, l, i1, j, ai[12], 20, 0x8d2a4c8a);        j = HH(j, k, l, i1, ai[5], 4, 0xfffa3942);        i1 = HH(i1, j, k, l, ai[8], 11, 0x8771f681);        l = HH(l, i1, j, k, ai[11], 16, 0x6d9d6122);        k = HH(k, l, i1, j, ai[14], 23, 0xfde5380c);        j = HH(j, k, l, i1, ai[1], 4, 0xa4beea44);        i1 = HH(i1, j, k, l, ai[4], 11, 0x4bdecfa9);        l = HH(l, i1, j, k, ai[7], 16, 0xf6bb4b60);        k = HH(k, l, i1, j, ai[10], 23, 0xbebfbc70);        j = HH(j, k, l, i1, ai[13], 4, 0x289b7ec6);        i1 = HH(i1, j, k, l, ai[0], 11, 0xeaa127fa);        l = HH(l, i1, j, k, ai[3], 16, 0xd4ef3085);        k = HH(k, l, i1, j, ai[6], 23, 0x4881d05);        j = HH(j, k, l, i1, ai[9], 4, 0xd9d4d039);        i1 = HH(i1, j, k, l, ai[12], 11, 0xe6db99e5);        l = HH(l, i1, j, k, ai[15], 16, 0x1fa27cf8);        k = HH(k, l, i1, j, ai[2], 23, 0xc4ac5665);        j = II(j, k, l, i1, ai[0], 6, 0xf4292244);        i1 = II(i1, j, k, l, ai[7], 10, 0x432aff97);        l = II(l, i1, j, k, ai[14], 15, 0xab9423a7);        k = II(k, l, i1, j, ai[5], 21, 0xfc93a039);        j = II(j, k, l, i1, ai[12], 6, 0x655b59c3);        i1 = II(i1, j, k, l, ai[3], 10, 0x8f0ccc92);        l = II(l, i1, j, k, ai[10], 15, 0xffeff47d);        k = II(k, l, i1, j, ai[1], 21, 0x85845dd1);        j = II(j, k, l, i1, ai[8], 6, 0x6fa87e4f);        i1 = II(i1, j, k, l, ai[15], 10, 0xfe2ce6e0);        l = II(l, i1, j, k, ai[6], 15, 0xa3014314);        k = II(k, l, i1, j, ai[13], 21, 0x4e0811a1);        j = II(j, k, l, i1, ai[4], 6, 0xf7537e82);        i1 = II(i1, j, k, l, ai[11], 10, 0xbd3af235);        l = II(l, i1, j, k, ai[2], 15, 0x2ad7d2bb);        k = II(k, l, i1, j, ai[9], 21, 0xeb86d391);        md5state.state[0] += j;        md5state.state[1] += k;        md5state.state[2] += l;        md5state.state[3] += i1;    }    public void Update(MD5State md5state, byte abyte0[], int i, int j)    {        finals = null;        if(j - i > abyte0.length)            j = abyte0.length - i;        int k = md5state.count[0] >>> 3 & 0x3f;        if((md5state.count[0] += j << 3) < j << 3)            md5state.count[1]++;        md5state.count[1] += j >>> 29;        int l = 64 - k;        int j1;        if(j >= l)        {            for(int i1 = 0; i1 < l; i1++)                md5state.buffer[i1 + k] = abyte0[i1 + i];            Transform(md5state, md5state.buffer, 0);            for(j1 = l; j1 + 63 < j; j1 += 64)                Transform(md5state, abyte0, j1);            k = 0;        } else        {            j1 = 0;        }        if(j1 < j)        {            int k1 = j1;            for(; j1 < j; j1++)                md5state.buffer[(k + j1) - k1] = abyte0[j1 + i];        }    }    public void Update(byte abyte0[], int i, int j)    {        Update(state, abyte0, i, j);    }    public void Update(byte abyte0[], int i)    {        Update(state, abyte0, 0, i);    }    public void Update(byte abyte0[])    {        Update(abyte0, 0, abyte0.length);    }    public void Update(byte byte0)    {        byte abyte0[] = new byte[1];        abyte0[0] = byte0;        Update(abyte0, 1);    }    public void Update(String s)    {        byte abyte0[] = new byte[s.length()];        s.getBytes(0, s.length(), abyte0, 0);        Update(abyte0, abyte0.length);    }    private byte[] Encode(int ai[], int i)    {        byte abyte0[] = new byte[i];        int j;        int k = j = 0;        for(; j < i; j += 4)        {            abyte0[j] = (byte)(ai[k] & 0xff);            abyte0[j + 1] = (byte)(ai[k] >>> 8 & 0xff);            abyte0[j + 2] = (byte)(ai[k] >>> 16 & 0xff);            abyte0[j + 3] = (byte)(ai[k] >>> 24 & 0xff);            k++;        }        return abyte0;    }    public synchronized byte[] Final()    {        if(finals == null)        {            MD5State md5state = new MD5State(state);            byte abyte0[] = Encode(md5state.count, 8);            int i = md5state.count[0] >>> 3 & 0x3f;            int j = i < 56 ? 56 - i : 120 - i;            Update(md5state, padding, 0, j);            Update(md5state, abyte0, 0, 8);            finals = md5state;        }        return Encode(finals.state, 16);    }    public static String asHex(byte abyte0[])    {        StringBuffer stringbuffer = new StringBuffer(abyte0.length * 2);        for(int i = 0; i < abyte0.length; i++)        {            if((abyte0[i] & 0xff) < 16)                stringbuffer.append("0");            stringbuffer.append(Long.toString(abyte0[i] & 0xff, 16));        }        return stringbuffer.toString();    }    public String asHex()    {        return asHex(Final());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -