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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gost28147mac.java

?? 內(nèi)容:基于jdk1.4的加密算法的具體實(shí)現(xiàn)
?? JAVA
字號(hào):
package org.bouncycastle.crypto.macs;import org.bouncycastle.crypto.CipherParameters;import org.bouncycastle.crypto.DataLengthException;import org.bouncycastle.crypto.Mac;import org.bouncycastle.crypto.params.KeyParameter;import org.bouncycastle.crypto.params.ParametersWithSBox;/** * implementation of GOST 28147-89 MAC */public class GOST28147Mac    implements Mac{    private int                 blockSize = 8;    private int                 macSize = 4;    private int                 bufOff;    private byte[]              buf;    private byte[]              mac;    private boolean             firstStep = true;    private int[]               workingKey = null;    //    // This is default S-box - E_A.    private byte S[] = {            0x9,0x6,0x3,0x2,0x8,0xB,0x1,0x7,0xA,0x4,0xE,0xF,0xC,0x0,0xD,0x5,            0x3,0x7,0xE,0x9,0x8,0xA,0xF,0x0,0x5,0x2,0x6,0xC,0xB,0x4,0xD,0x1,            0xE,0x4,0x6,0x2,0xB,0x3,0xD,0x8,0xC,0xF,0x5,0xA,0x0,0x7,0x1,0x9,            0xE,0x7,0xA,0xC,0xD,0x1,0x3,0x9,0x0,0x2,0xB,0x4,0xF,0x8,0x5,0x6,            0xB,0x5,0x1,0x9,0x8,0xD,0xF,0x0,0xE,0x4,0x2,0x3,0xC,0x7,0xA,0x6,            0x3,0xA,0xD,0xC,0x1,0x2,0x0,0xB,0x7,0x5,0x9,0x4,0x8,0xF,0xE,0x6,            0x1,0xD,0x2,0x9,0x7,0xA,0x6,0x0,0x8,0xC,0x4,0x5,0xF,0x3,0xB,0xE,            0xB,0xA,0xF,0x5,0x0,0xC,0xE,0x8,0x6,0x2,0x3,0x9,0x1,0x7,0xD,0x4    };        public GOST28147Mac()    {        mac = new byte[blockSize];        buf = new byte[blockSize];        bufOff = 0;    }    private int[] generateWorkingKey(        byte[]  userKey)    {        if (userKey.length != 32)        {            throw new IllegalArgumentException("Key length invalid. Key needs to be 32 byte - 256 bit!!!");        }        int key[] = new int[8];        for(int i=0; i!=8; i++)        {            key[i] = bytesToint(userKey,i*4);        }        return key;    }        public void init(        CipherParameters params)        throws IllegalArgumentException    {        reset();        buf = new byte[blockSize];        if (params instanceof ParametersWithSBox)        {            ParametersWithSBox   param = (ParametersWithSBox)params;            //            // Set the S-Box            //            System.arraycopy(param.getSBox(), 0, this.S, 0, param.getSBox().length);            //            // set key if there is one            //            if (param.getParameters() != null)            {                workingKey = generateWorkingKey(((KeyParameter)param.getParameters()).getKey());            }        }        else if (params instanceof KeyParameter)        {            workingKey = generateWorkingKey(((KeyParameter)params).getKey());        }        else        {           throw new IllegalArgumentException("invalid parameter passed to GOST28147 init - " + params.getClass().getName());        }    }    public String getAlgorithmName()    {        return "GOST28147Mac";    }    public int getMacSize()    {        return macSize;    }    private int gost28147_mainStep(int n1, int key)    {        int cm = (key + n1); // CM1                // S-box replacing                int om = S[  0 + ((cm >> (0 * 4)) & 0xF)] << (0 * 4);        om += S[ 16 + ((cm >> (1 * 4)) & 0xF)] << (1 * 4);        om += S[ 32 + ((cm >> (2 * 4)) & 0xF)] << (2 * 4);        om += S[ 48 + ((cm >> (3 * 4)) & 0xF)] << (3 * 4);        om += S[ 64 + ((cm >> (4 * 4)) & 0xF)] << (4 * 4);        om += S[ 80 + ((cm >> (5 * 4)) & 0xF)] << (5 * 4);        om += S[ 96 + ((cm >> (6 * 4)) & 0xF)] << (6 * 4);        om += S[112 + ((cm >> (7 * 4)) & 0xF)] << (7 * 4);                return om << 11 | om >>> (32-11); // 11-leftshift    }        private void gost28147MacFunc(            int[]   workingKey,            byte[]  in,            int     inOff,            byte[]  out,            int     outOff)    {        int N1, N2, tmp;  //tmp -> for saving N1        N1 = bytesToint(in, inOff);        N2 = bytesToint(in, inOff + 4);                for(int k = 0; k < 2; k++)  // 1-16 steps        {            for(int j = 0; j < 8; j++)            {                tmp = N1;                N1 = N2 ^ gost28147_mainStep(N1, workingKey[j]); // CM2                N2 = tmp;            }        }                intTobytes(N1, out, outOff);        intTobytes(N2, out, outOff + 4);    }        //array of bytes to type int    private int bytesToint(            byte[]  in,            int     inOff)    {        return  ((in[inOff + 3] << 24) & 0xff000000) + ((in[inOff + 2] << 16) & 0xff0000) +        ((in[inOff + 1] << 8) & 0xff00) + (in[inOff] & 0xff);    }        //int to array of bytes    private void intTobytes(            int     num,            byte[]  out,            int     outOff)    {        out[outOff + 3] = (byte)(num >>> 24);        out[outOff + 2] = (byte)(num >>> 16);        out[outOff + 1] = (byte)(num >>> 8);        out[outOff] =     (byte)num;    }            private byte[] CM5func(byte[] buf, int bufOff, byte[] mac)    {        byte[] sum = new byte[buf.length - bufOff];        System.arraycopy(buf, bufOff, sum, 0, mac.length);        for (int i = 0; i != mac.length; i++)        {            sum[i] = (byte)(sum[i] ^ mac[i]);        }        return sum;    }    public void update(byte in)            throws IllegalStateException    {        if (bufOff == buf.length)        {            byte[] sumbuf = new byte[buf.length];            System.arraycopy(buf, 0, sumbuf, 0, mac.length);            if (firstStep)            {                firstStep = false;            }            else            {                sumbuf = CM5func(buf, 0, mac);            }            gost28147MacFunc(workingKey, sumbuf, 0, mac, 0);            bufOff = 0;        }        buf[bufOff++] = in;    }    public void update(byte[] in, int inOff, int len)        throws DataLengthException, IllegalStateException    {            if (len < 0)            {                throw new IllegalArgumentException("Can't have a negative input length!");            }            int gapLen = blockSize - bufOff;            if (len > gapLen)            {                System.arraycopy(in, inOff, buf, bufOff, gapLen);                byte[] sumbuf = new byte[buf.length];                System.arraycopy(buf, 0, sumbuf, 0, mac.length);                if (firstStep)                {                    firstStep = false;                }                else                {                    sumbuf = CM5func(buf, 0, mac);                }                gost28147MacFunc(workingKey, sumbuf, 0, mac, 0);                bufOff = 0;                len -= gapLen;                inOff += gapLen;                while (len > blockSize)                {                    sumbuf = CM5func(in, inOff, mac);                    gost28147MacFunc(workingKey, sumbuf, 0, mac, 0);                    len -= blockSize;                    inOff += blockSize;                }            }            System.arraycopy(in, inOff, buf, bufOff, len);            bufOff += len;        }         public int doFinal(byte[] out, int outOff)        throws DataLengthException, IllegalStateException    {        //padding with zero        while (bufOff < blockSize)        {            buf[bufOff] = 0;            bufOff++;        }        byte[] sumbuf = new byte[buf.length];        System.arraycopy(buf, 0, sumbuf, 0, mac.length);        if (firstStep)        {            firstStep = false;        }        else        {            sumbuf = CM5func(buf, 0, mac);        }        gost28147MacFunc(workingKey, sumbuf, 0, mac, 0);        System.arraycopy(mac, (mac.length/2)-macSize, out, outOff, macSize);        reset();        return macSize;    }    public void reset()    {        /*         * clean the buffer.         */        for (int i = 0; i < buf.length; i++)        {            buf[i] = 0;        }        bufOff = 0;        firstStep = true;    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久人人人人传媒 | 麻豆91在线观看| 成人国产精品视频| 日韩欧美一区二区免费| 亚洲成年人网站在线观看| 国产69精品一区二区亚洲孕妇| 欧美精品一卡二卡| 亚洲图片欧美色图| 欧美日韩一区二区欧美激情| 亚洲午夜电影网| 制服丝袜在线91| 国产在线一区二区综合免费视频| 日韩精品专区在线| 国内成人自拍视频| 国产精品每日更新在线播放网址 | 亚洲bt欧美bt精品| 91精品国产麻豆| 国产精品18久久久久| 国产精品福利电影一区二区三区四区| 成人av一区二区三区| 亚洲精品中文在线| 日韩一级高清毛片| 国产成人精品免费一区二区| 亚洲欧美经典视频| 欧美色综合网站| 国产精品888| 亚洲国产精品一区二区www| 精品久久久久av影院| 色综合一个色综合| 精品一区二区免费视频| 国产精品久久久久影院色老大| 欧美视频一区二区三区| 国产专区欧美精品| 婷婷综合五月天| 中文字幕一区二区不卡 | 日韩一区二区三区电影在线观看 | 亚洲综合一区二区| 国产日本欧洲亚洲| 欧美一区二区在线免费播放| 成人一二三区视频| 国产综合一区二区| 日韩中文字幕av电影| 亚洲手机成人高清视频| 欧美激情一区二区在线| 9191成人精品久久| 宅男在线国产精品| 欧美日韩国产高清一区| 欧美亚洲国产怡红院影院| 99久久精品国产网站| 欧美一区二区高清| 99久久婷婷国产综合精品电影| 美女高潮久久久| 久久 天天综合| 久久99精品国产麻豆婷婷| 美国十次了思思久久精品导航| 亚洲va天堂va国产va久| 天天色综合天天| 午夜不卡av免费| 亚洲观看高清完整版在线观看| 136国产福利精品导航| 国产精品国产三级国产aⅴ无密码| 欧美国产禁国产网站cc| 中文字幕一区在线观看| 一区二区三区波多野结衣在线观看| 中文字幕一区不卡| 婷婷久久综合九色国产成人| 日产精品久久久久久久性色| 日韩中文字幕一区二区三区| 久久电影网站中文字幕| 国产成人aaa| 日本福利一区二区| 日韩午夜小视频| 国产精品每日更新在线播放网址| 一区二区三区在线不卡| 九九精品一区二区| 91丨porny丨最新| 欧美一区二区久久| 亚洲人精品一区| 国内精品国产成人国产三级粉色| 97国产一区二区| 精品久久久久av影院| 一区二区在线观看免费| 经典一区二区三区| 欧美日韩小视频| ...av二区三区久久精品| 久久99九九99精品| 欧美中文字幕一区二区三区亚洲| 国产午夜精品一区二区三区嫩草| 亚洲成国产人片在线观看| 成人h动漫精品一区二区| 日韩免费看的电影| 亚洲福中文字幕伊人影院| 国产91富婆露脸刺激对白| 日韩天堂在线观看| 亚洲国产日韩a在线播放性色| 成人h动漫精品一区二区| 久久久久久久精| 国内精品嫩模私拍在线| 欧美成人一区二区三区片免费| 亚洲午夜久久久久中文字幕久| 成人av免费网站| 国产精品无圣光一区二区| 国产91精品免费| 久久久美女毛片| 成人精品高清在线| 国产精品久久久久精k8| 成人免费看视频| 亚洲私人影院在线观看| 欧美天天综合网| 男女激情视频一区| 精品成人在线观看| 国产精品一区在线| 亚洲免费大片在线观看| 色悠久久久久综合欧美99| 视频一区视频二区中文字幕| 精品国产免费人成电影在线观看四季| 日韩精品视频网| 国产目拍亚洲精品99久久精品| www.亚洲在线| 久久se精品一区精品二区| 91国内精品野花午夜精品| 欧美一区二区在线看| 91亚洲国产成人精品一区二区三 | 国产精品久久久久久久久免费丝袜| 91在线观看视频| 久久国内精品视频| 亚洲欧美日韩国产另类专区| 欧美一区二区视频免费观看| 国产夫妻精品视频| 日韩电影免费在线| 亚洲欧洲另类国产综合| 精品国产乱码久久久久久久久| 北岛玲一区二区三区四区| 韩国精品在线观看| 亚洲成国产人片在线观看| 中文字幕亚洲一区二区av在线 | 欧美aa在线视频| 亚洲福利电影网| 亚洲女爱视频在线| 欧美激情一区在线| 国产无遮挡一区二区三区毛片日本 | 欧美成人在线直播| 欧美一区二区三区播放老司机 | 国产精品18久久久久久久网站| 舔着乳尖日韩一区| 日韩专区在线视频| 亚洲成av人片一区二区| 亚洲成人免费观看| 婷婷中文字幕综合| 首页综合国产亚洲丝袜| 亚洲电影一区二区三区| 亚洲一区二区三区自拍| 亚洲精品午夜久久久| 一区二区三区久久| 亚洲自拍偷拍图区| 奇米在线7777在线精品| 久久99精品一区二区三区| 国产福利一区在线观看| 成人av在线资源| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩免费视频| 久久久久国产一区二区三区四区| 国产日产欧产精品推荐色| 亚洲日本va午夜在线影院| 亚洲h精品动漫在线观看| 国产一区在线精品| 91蜜桃在线观看| 欧美一级在线免费| 国产日韩影视精品| 成人欧美一区二区三区| 日韩 欧美一区二区三区| 成人高清视频免费观看| 欧美日本在线视频| 国产精品毛片久久久久久| 亚洲成人你懂的| 丁香激情综合国产| 欧美日韩中文一区| 国产精品免费aⅴ片在线观看| 亚洲伊人伊色伊影伊综合网| 国产美女精品人人做人人爽| 在线播放视频一区| 国产精品久久精品日日| 久久不见久久见免费视频1| 色婷婷国产精品久久包臀| 国产日韩三级在线| 免费欧美日韩国产三级电影| 欧美中文字幕一区二区三区亚洲| 国产日韩三级在线| 国产一区二三区好的| 欧美日韩五月天| 午夜日韩在线观看| 欧美视频在线播放| 亚洲成人综合视频| 欧美日韩国产免费一区二区 | 中文一区一区三区高中清不卡| 日本成人在线一区| 欧美一区二区在线播放| 日韩精品每日更新| 欧美日本在线看| 久久激情综合网|