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

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

?? gost28147engine.java

?? 內容:基于jdk1.4的加密算法的具體實現
?? JAVA
字號:
package org.bouncycastle.crypto.engines;import java.util.Hashtable;import org.bouncycastle.crypto.BlockCipher;import org.bouncycastle.crypto.CipherParameters;import org.bouncycastle.crypto.DataLengthException;import org.bouncycastle.crypto.params.KeyParameter;import org.bouncycastle.crypto.params.ParametersWithSBox;/** * implementation of GOST 28147-89 */public class GOST28147Engine    implements BlockCipher{    protected static final int  BLOCK_SIZE = 8;    private int[]               workingKey = null;    private boolean forEncryption;    // these are the S-boxes given in Applied Cryptography 2nd Ed., p. 333    // This is default S-box!    private byte S[] = {        0x4,0xA,0x9,0x2,0xD,0x8,0x0,0xE,0x6,0xB,0x1,0xC,0x7,0xF,0x5,0x3,        0xE,0xB,0x4,0xC,0x6,0xD,0xF,0xA,0x2,0x3,0x8,0x1,0x0,0x7,0x5,0x9,        0x5,0x8,0x1,0xD,0xA,0x3,0x4,0x2,0xE,0xF,0xC,0x7,0x6,0x0,0x9,0xB,        0x7,0xD,0xA,0x1,0x0,0x8,0x9,0xF,0xE,0x4,0x6,0xC,0xB,0x2,0x5,0x3,        0x6,0xC,0x7,0x1,0x5,0xF,0xD,0x8,0x4,0xA,0x9,0xE,0x0,0x3,0xB,0x2,        0x4,0xB,0xA,0x0,0x7,0x2,0x1,0xD,0x3,0x6,0x8,0x5,0x9,0xC,0xF,0xE,        0xD,0xB,0x4,0x1,0x3,0xF,0x5,0x9,0x0,0xA,0xE,0x7,0x6,0x8,0x2,0xC,        0x1,0xF,0xD,0x0,0x5,0x7,0xA,0x4,0x9,0x2,0x3,0xE,0x6,0xB,0x8,0xC    };        /*     * class content S-box parameters for encrypting     * getting from, see: http://www.ietf.org/internet-drafts/draft-popov-cryptopro-cpalgs-01.txt     *                    http://www.ietf.org/internet-drafts/draft-popov-cryptopro-cpalgs-02.txt     */    private static byte[] ESbox_Test = {         0x4,0x2,0xF,0x5,0x9,0x1,0x0,0x8,0xE,0x3,0xB,0xC,0xD,0x7,0xA,0x6,         0xC,0x9,0xF,0xE,0x8,0x1,0x3,0xA,0x2,0x7,0x4,0xD,0x6,0x0,0xB,0x5,         0xD,0x8,0xE,0xC,0x7,0x3,0x9,0xA,0x1,0x5,0x2,0x4,0x6,0xF,0x0,0xB,         0xE,0x9,0xB,0x2,0x5,0xF,0x7,0x1,0x0,0xD,0xC,0x6,0xA,0x4,0x3,0x8,         0x3,0xE,0x5,0x9,0x6,0x8,0x0,0xD,0xA,0xB,0x7,0xC,0x2,0x1,0xF,0x4,         0x8,0xF,0x6,0xB,0x1,0x9,0xC,0x5,0xD,0x3,0x7,0xA,0x0,0xE,0x2,0x4,         0x9,0xB,0xC,0x0,0x3,0x6,0x7,0x5,0x4,0x8,0xE,0xF,0x1,0xA,0x2,0xD,         0xC,0x6,0x5,0x2,0xB,0x0,0x9,0xD,0x3,0xE,0x7,0xA,0xF,0x4,0x1,0x8    };        private static byte[] ESbox_A = {         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    };        private static byte[] ESbox_B = {         0x8,0x4,0xB,0x1,0x3,0x5,0x0,0x9,0x2,0xE,0xA,0xC,0xD,0x6,0x7,0xF,         0x0,0x1,0x2,0xA,0x4,0xD,0x5,0xC,0x9,0x7,0x3,0xF,0xB,0x8,0x6,0xE,         0xE,0xC,0x0,0xA,0x9,0x2,0xD,0xB,0x7,0x5,0x8,0xF,0x3,0x6,0x1,0x4,         0x7,0x5,0x0,0xD,0xB,0x6,0x1,0x2,0x3,0xA,0xC,0xF,0x4,0xE,0x9,0x8,         0x2,0x7,0xC,0xF,0x9,0x5,0xA,0xB,0x1,0x4,0x0,0xD,0x6,0x8,0xE,0x3,         0x8,0x3,0x2,0x6,0x4,0xD,0xE,0xB,0xC,0x1,0x7,0xF,0xA,0x0,0x9,0x5,         0x5,0x2,0xA,0xB,0x9,0x1,0xC,0x3,0x7,0x4,0xD,0x0,0x6,0xF,0x8,0xE,         0x0,0x4,0xB,0xE,0x8,0x3,0x7,0x1,0xA,0x2,0x9,0x6,0xF,0xD,0x5,0xC    };        private static byte[] ESbox_C = {         0x1,0xB,0xC,0x2,0x9,0xD,0x0,0xF,0x4,0x5,0x8,0xE,0xA,0x7,0x6,0x3,         0x0,0x1,0x7,0xD,0xB,0x4,0x5,0x2,0x8,0xE,0xF,0xC,0x9,0xA,0x6,0x3,         0x8,0x2,0x5,0x0,0x4,0x9,0xF,0xA,0x3,0x7,0xC,0xD,0x6,0xE,0x1,0xB,         0x3,0x6,0x0,0x1,0x5,0xD,0xA,0x8,0xB,0x2,0x9,0x7,0xE,0xF,0xC,0x4,         0x8,0xD,0xB,0x0,0x4,0x5,0x1,0x2,0x9,0x3,0xC,0xE,0x6,0xF,0xA,0x7,         0xC,0x9,0xB,0x1,0x8,0xE,0x2,0x4,0x7,0x3,0x6,0x5,0xA,0x0,0xF,0xD,         0xA,0x9,0x6,0x8,0xD,0xE,0x2,0x0,0xF,0x3,0x5,0xB,0x4,0x1,0xC,0x7,         0x7,0x4,0x0,0x5,0xA,0x2,0xF,0xE,0xC,0x6,0x1,0xB,0xD,0x9,0x3,0x8    };        private static byte[] ESbox_D = {         0xF,0xC,0x2,0xA,0x6,0x4,0x5,0x0,0x7,0x9,0xE,0xD,0x1,0xB,0x8,0x3,         0xB,0x6,0x3,0x4,0xC,0xF,0xE,0x2,0x7,0xD,0x8,0x0,0x5,0xA,0x9,0x1,         0x1,0xC,0xB,0x0,0xF,0xE,0x6,0x5,0xA,0xD,0x4,0x8,0x9,0x3,0x7,0x2,         0x1,0x5,0xE,0xC,0xA,0x7,0x0,0xD,0x6,0x2,0xB,0x4,0x9,0x3,0xF,0x8,         0x0,0xC,0x8,0x9,0xD,0x2,0xA,0xB,0x7,0x3,0x6,0x5,0x4,0xE,0xF,0x1,         0x8,0x0,0xF,0x3,0x2,0x5,0xE,0xB,0x1,0xA,0x4,0x7,0xC,0x9,0xD,0x6,         0x3,0x0,0x6,0xF,0x1,0xE,0x9,0x2,0xD,0x8,0xC,0x4,0xB,0xA,0x5,0x7,         0x1,0xA,0x6,0x8,0xF,0xB,0x0,0x4,0xC,0x3,0x5,0x9,0x7,0xD,0x2,0xE    };        //S-box for digest    private static byte DSbox_Test[] = {         0x4,0xA,0x9,0x2,0xD,0x8,0x0,0xE,0x6,0xB,0x1,0xC,0x7,0xF,0x5,0x3,         0xE,0xB,0x4,0xC,0x6,0xD,0xF,0xA,0x2,0x3,0x8,0x1,0x0,0x7,0x5,0x9,         0x5,0x8,0x1,0xD,0xA,0x3,0x4,0x2,0xE,0xF,0xC,0x7,0x6,0x0,0x9,0xB,         0x7,0xD,0xA,0x1,0x0,0x8,0x9,0xF,0xE,0x4,0x6,0xC,0xB,0x2,0x5,0x3,         0x6,0xC,0x7,0x1,0x5,0xF,0xD,0x8,0x4,0xA,0x9,0xE,0x0,0x3,0xB,0x2,         0x4,0xB,0xA,0x0,0x7,0x2,0x1,0xD,0x3,0x6,0x8,0x5,0x9,0xC,0xF,0xE,         0xD,0xB,0x4,0x1,0x3,0xF,0x5,0x9,0x0,0xA,0xE,0x7,0x6,0x8,0x2,0xC,         0x1,0xF,0xD,0x0,0x5,0x7,0xA,0x4,0x9,0x2,0x3,0xE,0x6,0xB,0x8,0xC    };        private static byte DSbox_A[] = {         0xA,0x4,0x5,0x6,0x8,0x1,0x3,0x7,0xD,0xC,0xE,0x0,0x9,0x2,0xB,0xF,         0x5,0xF,0x4,0x0,0x2,0xD,0xB,0x9,0x1,0x7,0x6,0x3,0xC,0xE,0xA,0x8,         0x7,0xF,0xC,0xE,0x9,0x4,0x1,0x0,0x3,0xB,0x5,0x2,0x6,0xA,0x8,0xD,         0x4,0xA,0x7,0xC,0x0,0xF,0x2,0x8,0xE,0x1,0x6,0x5,0xD,0xB,0x9,0x3,         0x7,0x6,0x4,0xB,0x9,0xC,0x2,0xA,0x1,0x8,0x0,0xE,0xF,0xD,0x3,0x5,         0x7,0x6,0x2,0x4,0xD,0x9,0xF,0x0,0xA,0x1,0x5,0xB,0x8,0xE,0xC,0x3,         0xD,0xE,0x4,0x1,0x7,0x0,0x5,0xA,0x3,0xC,0x8,0xF,0x6,0x2,0x9,0xB,         0x1,0x3,0xA,0x9,0x5,0xB,0x4,0xF,0x8,0x6,0x7,0xE,0xD,0x0,0x2,0xC    };        //    // pre-defined sbox table    //    private static Hashtable sBoxes = new Hashtable();        static    {        sBoxes.put("E-TEST", ESbox_Test);        sBoxes.put("E-A", ESbox_A);        sBoxes.put("E-B", ESbox_B);        sBoxes.put("E-C", ESbox_C);        sBoxes.put("E-D", ESbox_D);        sBoxes.put("D-TEST", DSbox_Test);        sBoxes.put("D-A", DSbox_A);    }        /**     * standard constructor.     */    public GOST28147Engine()    {    }    /**     * initialise an GOST28147 cipher.     *     * @param forEncryption whether or not we are for encryption.     * @param params the parameters required to set up the cipher.     * @exception IllegalArgumentException if the params argument is     * inappropriate.     */    public void init(        boolean           forEncryption,        CipherParameters  params)    {        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(forEncryption,                        ((KeyParameter)param.getParameters()).getKey());            }        }        else if (params instanceof KeyParameter)        {            workingKey = generateWorkingKey(forEncryption,                                  ((KeyParameter)params).getKey());        }        else        {           throw new IllegalArgumentException("invalid parameter passed to GOST28147 init - " + params.getClass().getName());        }    }    public String getAlgorithmName()    {        return "GOST28147";    }    public int getBlockSize()    {        return BLOCK_SIZE;    }    public int processBlock(        byte[] in,        int inOff,        byte[] out,        int outOff)    {        if (workingKey == null)        {            throw new IllegalStateException("GOST28147 engine not initialised");        }        if ((inOff + BLOCK_SIZE) > in.length)        {            throw new DataLengthException("input buffer too short");        }        if ((outOff + BLOCK_SIZE) > out.length)        {            throw new DataLengthException("output buffer too short");        }        GOST28147Func(workingKey, in, inOff, out, outOff);        return BLOCK_SIZE;    }    public void reset()    {    }    private int[] generateWorkingKey(        boolean forEncryption,        byte[]  userKey)    {         this.forEncryption = forEncryption;        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;    }    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 GOST28147Func(        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);        if (this.forEncryption)        {          for(int k = 0; k < 3; k++)  // 1-24 steps          {            for(int j = 0; j < 8; j++)            {                tmp = N1;                N1 = N2 ^ GOST28147_mainStep(N1, workingKey[j]); // CM2                N2 = tmp;            }          }          for(int j = 7; j > 0; j--)  // 25-31 steps          {              tmp = N1;              N1 = N2 ^ GOST28147_mainStep(N1, workingKey[j]); // CM2              N2 = tmp;          }        }        else //decrypt        {          for(int j = 0; j < 8; j++)  // 1-8 steps          {             tmp = N1;             N1 = N2 ^ GOST28147_mainStep(N1, workingKey[j]); // CM2             N2 = tmp;          }          for(int k = 0; k < 3; k++)  //9-31 steps          {            for(int j = 7; j >= 0; j--)            {                if ((k == 2) && (j==0))                {                    break; // break 32 step                }                tmp = N1;                N1 = N2 ^ GOST28147_mainStep(N1, workingKey[j]); // CM2                N2 = tmp;            }          }        }        N2 = N2 ^ GOST28147_mainStep(N1, workingKey[0]);  // 32 step (N1=N1)        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;    }        /**     * Return the S-Box associated with SBoxName     * @param sBoxName name of the S-Box     * @return byte array representing the S-Box     */    public static byte[] getSBox(        String  sBoxName)    {        byte[] namedSBox = (byte[])sBoxes.get(sBoxName.toUpperCase());                if (namedSBox != null)        {            byte[] sBox = new byte[namedSBox.length];                        System.arraycopy(namedSBox, 0, sBox, 0, sBox.length);                    return sBox;        }        else        {            throw new IllegalArgumentException("Unknown S-Box - possible types: "              + "\"E-Test\", \"E-A\", \"E-B\", \"E-C\", \"E-D\", \"D-Test\", \"D-A\".");        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人va在线观看天堂| 亚洲欧洲精品一区二区三区| 精品婷婷伊人一区三区三| 粉嫩蜜臀av国产精品网站| 激情国产一区二区| 毛片一区二区三区| 久久99国产精品尤物| 免费久久精品视频| 国产综合一区二区| 国产精品一区二区无线| 成人激情午夜影院| 在线观看日韩电影| 欧美精选一区二区| 26uuuu精品一区二区| 国产日产精品一区| 一区二区三区日韩在线观看| 天堂资源在线中文精品| 精品伊人久久久久7777人| 国产一区91精品张津瑜| 99久久婷婷国产综合精品电影 | 中文字幕一区二区三区四区| 国产精品国产三级国产a| 亚洲精品成人在线| 免费在线观看日韩欧美| 国产成人av一区二区三区在线观看| 国产宾馆实践打屁股91| 色婷婷精品久久二区二区蜜臂av | 久久99精品国产.久久久久 | 欧美精品一级二级| 成人伦理片在线| 一本久道久久综合中文字幕| 欧美午夜精品免费| 欧美精品一区二区三区蜜桃 | 亚洲图片欧美色图| 蜜桃久久久久久| 国产成a人亚洲精品| av一区二区三区| 欧美精品久久99久久在免费线| 日韩视频123| 亚洲三级在线免费观看| 日韩精品三区四区| 99精品视频在线观看免费| 91麻豆精品国产无毒不卡在线观看| 欧美tickling网站挠脚心| 国产精品久久影院| 九九国产精品视频| 欧美在线观看禁18| 国产欧美一区二区精品性色超碰| 亚洲成人777| 色哟哟在线观看一区二区三区| 精品欧美一区二区在线观看| 亚洲成人资源在线| 日本乱码高清不卡字幕| 久久婷婷综合激情| 裸体歌舞表演一区二区| 在线影院国内精品| 亚洲欧洲日产国码二区| 国产一区二区三区精品视频| 欧美日韩一区二区三区四区| 亚洲人精品午夜| 91在线视频播放| 日本一区免费视频| 国产一区二区成人久久免费影院| 制服丝袜国产精品| 日韩电影在线一区| 欧美酷刑日本凌虐凌虐| 亚洲一区二区三区四区不卡| 色天天综合久久久久综合片| 国产精品久久久久aaaa| 国产成人精品免费一区二区| 26uuu亚洲婷婷狠狠天堂| 男人操女人的视频在线观看欧美| 欧美日韩在线播放一区| 亚洲风情在线资源站| 在线观看一区二区视频| 亚洲一区二区三区免费视频| 91麻豆自制传媒国产之光| 国产精品二三区| 91在线国内视频| 最近中文字幕一区二区三区| 91麻豆精东视频| 伊人婷婷欧美激情| 欧美日韩一本到| 蜜桃视频一区二区三区| 欧美电影免费观看高清完整版在| 美女视频网站久久| 久久久久亚洲蜜桃| 成人美女视频在线观看18| 亚洲欧美怡红院| 欧美自拍丝袜亚洲| 人禽交欧美网站| 久久精品免费在线观看| www.亚洲色图| 亚洲一区二区在线播放相泽| 制服丝袜亚洲播放| 国产成人在线视频播放| 亚洲欧美日韩精品久久久久| 欧美在线高清视频| 精品一区二区三区在线播放| 欧美激情一区二区三区不卡 | 欧美tickling挠脚心丨vk| 国产成人亚洲综合a∨婷婷图片 | 欧美日本免费一区二区三区| 麻豆91精品91久久久的内涵| 国产日韩v精品一区二区| 欧洲中文字幕精品| 久久精品国产免费| 国产精品成人一区二区三区夜夜夜| 在线观看欧美黄色| 国产精品1024| 亚洲成a人v欧美综合天堂下载| 精品成人佐山爱一区二区| 岛国精品一区二区| 青青国产91久久久久久| 亚洲欧洲一区二区在线播放| 欧美一卡在线观看| 色综合欧美在线| 韩国欧美国产1区| 亚洲一区二区影院| 日本一区二区在线不卡| 欧美一卡2卡3卡4卡| 91亚洲精品久久久蜜桃网站| 久久av中文字幕片| 亚洲一级二级在线| 中文字幕成人在线观看| 欧美一级爆毛片| 在线精品视频一区二区三四 | 在线欧美日韩精品| 高清视频一区二区| 欧美aaaaaa午夜精品| 一区二区三区免费| 中文字幕亚洲精品在线观看| 精品国产91洋老外米糕| 欧美日韩一区二区三区在线| 色诱亚洲精品久久久久久| 高清av一区二区| 国产一区欧美日韩| 免费观看91视频大全| 日韩电影免费一区| 亚洲午夜精品17c| 亚洲女同ⅹxx女同tv| 一区在线观看免费| 中文字幕亚洲电影| 中国av一区二区三区| 国产精品麻豆网站| 国产精品少妇自拍| 亚洲国产精品传媒在线观看| 久久青草欧美一区二区三区| 欧美刺激脚交jootjob| 欧美成人精品二区三区99精品| 欧美日韩亚洲另类| 欧美日韩国产小视频在线观看| 欧美午夜宅男影院| 欧美无乱码久久久免费午夜一区| 色狠狠桃花综合| 欧美性生活大片视频| 欧美日韩亚洲综合| 91精品国产综合久久久久久漫画| 欧美色区777第一页| 555www色欧美视频| 精品久久久久久无| 国产欧美一区视频| 亚洲美女精品一区| 亚洲第一二三四区| 捆绑调教一区二区三区| 国产精品一区在线| av中文字幕一区| 欧美日韩精品欧美日韩精品| 欧美一区二区视频观看视频| 欧美精品一区二区三区蜜臀| 国产色产综合产在线视频| 国产精品福利在线播放| 亚洲18影院在线观看| 日韩电影在线观看一区| 国产麻豆视频一区二区| 91蜜桃免费观看视频| 777精品伊人久久久久大香线蕉| 欧美成人在线直播| 亚洲日本在线a| 美女视频一区二区| 97精品电影院| 欧美一区二区三区免费观看视频 | 色婷婷国产精品| 欧美一级日韩免费不卡| 国产精品欧美久久久久一区二区| 亚洲精选视频免费看| 青青国产91久久久久久| 99在线热播精品免费| 欧美美女黄视频| 国产精品久久久久影院| 另类小说色综合网站| 在线免费观看视频一区| 国产三区在线成人av| 日本美女一区二区| 91影院在线免费观看| 久久综合成人精品亚洲另类欧美| 一区二区视频在线| 国产一区二区中文字幕| 在线观看三级视频欧美| 中文字幕一区二区三|