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

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

?? pkcs12parametersgenerator.java

?? 內(nèi)容:基于jdk1.4的加密算法的具體實現(xiàn)
?? JAVA
字號:
package org.bouncycastle.crypto.generators;import org.bouncycastle.crypto.CipherParameters;import org.bouncycastle.crypto.Digest;import org.bouncycastle.crypto.ExtendedDigest;import org.bouncycastle.crypto.PBEParametersGenerator;import org.bouncycastle.crypto.params.KeyParameter;import org.bouncycastle.crypto.params.ParametersWithIV;/** * Generator for PBE derived keys and ivs as defined by PKCS 12 V1.0. * <p> * The document this implementation is based on can be found at * <a href=http://www.rsasecurity.com/rsalabs/pkcs/pkcs-12/index.html> * RSA's PKCS12 Page</a> */public class PKCS12ParametersGenerator    extends PBEParametersGenerator{    public static final int KEY_MATERIAL = 1;    public static final int IV_MATERIAL  = 2;    public static final int MAC_MATERIAL = 3;    private Digest digest;    private int     u;    private int     v;    /**     * Construct a PKCS 12 Parameters generator. This constructor will     * accept any digest which also implements ExtendedDigest.     *     * @param digest the digest to be used as the source of derived keys.     * @exception IllegalArgumentException if an unknown digest is passed in.     */    public PKCS12ParametersGenerator(        Digest  digest)    {        this.digest = digest;        if (digest instanceof ExtendedDigest)        {            u = digest.getDigestSize();            v = ((ExtendedDigest)digest).getByteLength();        }        else        {            throw new IllegalArgumentException("Digest " + digest.getAlgorithmName() + " unsupported");        }    }    /**     * add a + b + 1, returning the result in a. The a value is treated     * as a BigInteger of length (b.length * 8) bits. The result is      * modulo 2^b.length in case of overflow.     */    private void adjust(        byte[]  a,        int     aOff,        byte[]  b)    {        int  x = (b[b.length - 1] & 0xff) + (a[aOff + b.length - 1] & 0xff) + 1;        a[aOff + b.length - 1] = (byte)x;        x >>>= 8;        for (int i = b.length - 2; i >= 0; i--)        {            x += (b[i] & 0xff) + (a[aOff + i] & 0xff);            a[aOff + i] = (byte)x;            x >>>= 8;        }    }    /**     * generation of a derived key ala PKCS12 V1.0.     */    private byte[] generateDerivedKey(        int idByte,        int n)    {        byte[]  D = new byte[v];        byte[]  dKey = new byte[n];        for (int i = 0; i != D.length; i++)        {            D[i] = (byte)idByte;        }        byte[]  S;        if ((salt != null) && (salt.length != 0))        {            S = new byte[v * ((salt.length + v - 1) / v)];            for (int i = 0; i != S.length; i++)            {                S[i] = salt[i % salt.length];            }        }        else        {            S = new byte[0];        }        byte[]  P;        if ((password != null) && (password.length != 0))        {            P = new byte[v * ((password.length + v - 1) / v)];            for (int i = 0; i != P.length; i++)            {                P[i] = password[i % password.length];            }        }        else        {            P = new byte[0];        }        byte[]  I = new byte[S.length + P.length];        System.arraycopy(S, 0, I, 0, S.length);        System.arraycopy(P, 0, I, S.length, P.length);        byte[]  B = new byte[v];        int     c = (n + u - 1) / u;        for (int i = 1; i <= c; i++)        {            byte[]  A = new byte[u];            digest.update(D, 0, D.length);            digest.update(I, 0, I.length);            digest.doFinal(A, 0);            for (int j = 1; j != iterationCount; j++)            {                digest.update(A, 0, A.length);                digest.doFinal(A, 0);            }            for (int j = 0; j != B.length; j++)            {                B[j] = A[j % A.length];            }            for (int j = 0; j != I.length / v; j++)            {                adjust(I, j * v, B);            }            if (i == c)            {                System.arraycopy(A, 0, dKey, (i - 1) * u, dKey.length - ((i - 1) * u));            }            else            {                System.arraycopy(A, 0, dKey, (i - 1) * u, A.length);            }        }        return dKey;    }    /**     * Generate a key parameter derived from the password, salt, and iteration     * count we are currently initialised with.     *     * @param keySize the size of the key we want (in bits)     * @return a KeyParameter object.     */    public CipherParameters generateDerivedParameters(        int keySize)    {        keySize = keySize / 8;        byte[]  dKey = generateDerivedKey(KEY_MATERIAL, keySize);        return new KeyParameter(dKey, 0, keySize);    }    /**     * Generate a key with initialisation vector parameter derived from     * the password, salt, and iteration count we are currently initialised     * with.     *     * @param keySize the size of the key we want (in bits)     * @param ivSize the size of the iv we want (in bits)     * @return a ParametersWithIV object.     */    public CipherParameters generateDerivedParameters(        int     keySize,        int     ivSize)    {        keySize = keySize / 8;        ivSize = ivSize / 8;        byte[]  dKey = generateDerivedKey(KEY_MATERIAL, keySize);        byte[]  iv = generateDerivedKey(IV_MATERIAL, ivSize);        return new ParametersWithIV(new KeyParameter(dKey, 0, keySize), iv, 0, ivSize);    }    /**     * Generate a key parameter for use with a MAC derived from the password,     * salt, and iteration count we are currently initialised with.     *     * @param keySize the size of the key we want (in bits)     * @return a KeyParameter object.     */    public CipherParameters generateDerivedMacParameters(        int keySize)    {        keySize = keySize / 8;        byte[]  dKey = generateDerivedKey(MAC_MATERIAL, keySize);        return new KeyParameter(dKey, 0, keySize);    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区日韩视频| 国产精品成人一区二区艾草| 日本一区二区视频在线| 亚洲激情在线激情| 国产精品一区二区三区四区| 欧美日韩精品一区二区三区四区| 久久精品亚洲乱码伦伦中文| 午夜影院久久久| 91社区在线播放| 国产日韩欧美在线一区| 日本欧洲一区二区| 欧美三级韩国三级日本三斤| 国产精品久久久久久久午夜片 | 7777精品伊人久久久大香线蕉经典版下载 | 337p亚洲精品色噜噜| 国产精品国产三级国产aⅴ入口 | 一区二区欧美国产| 成人丝袜高跟foot| 久久久久九九视频| 麻豆一区二区三区| 91精品国产色综合久久久蜜香臀| 亚洲色图视频网| 成人av在线电影| 国产精品视频第一区| 懂色av一区二区夜夜嗨| 精品国产乱子伦一区| 日本不卡1234视频| 91精品久久久久久久91蜜桃| 亚洲观看高清完整版在线观看| 97久久精品人人做人人爽| 国产亚洲精久久久久久| 国产精品 欧美精品| 欧美国产乱子伦| 丰满亚洲少妇av| 国产精品久久久久一区二区三区共 | 精品噜噜噜噜久久久久久久久试看| 亚洲成人动漫一区| 欧美一区二区视频在线观看| 日本三级亚洲精品| 亚洲精品在线网站| 国产v日产∨综合v精品视频| 国产欧美一区二区三区在线看蜜臀 | 精品中文av资源站在线观看| 日韩欧美在线综合网| 久久草av在线| 久久精品在线观看| 99r精品视频| 亚洲制服丝袜一区| 欧美一级生活片| 麻豆久久一区二区| 欧美激情一区二区三区不卡| 91在线视频播放| 亚洲国产精品久久久久秋霞影院| 91.xcao| 国产麻豆视频一区二区| 中文字幕在线不卡| 欧美性大战久久久久久久| 日韩激情av在线| 久久影音资源网| jiyouzz国产精品久久| 亚洲图片欧美综合| 精品裸体舞一区二区三区| av电影天堂一区二区在线观看| 亚洲欧美日韩国产成人精品影院 | 99精品视频免费在线观看| 亚洲大型综合色站| 久久亚洲私人国产精品va媚药| 成人动漫在线一区| 丝袜亚洲另类丝袜在线| 久久人人爽人人爽| 欧美在线你懂的| 国内外精品视频| 一区二区三区在线高清| 日韩精品一区二| 日本高清不卡视频| 韩国成人福利片在线播放| 有坂深雪av一区二区精品| 精品国产乱码久久| 欧美午夜影院一区| 成人国产精品免费网站| 青青草原综合久久大伊人精品 | 4438亚洲最大| av电影在线观看完整版一区二区| 美国毛片一区二区三区| 亚洲色图另类专区| 久久久久久久免费视频了| 欧美午夜精品一区二区蜜桃| 国产成人a级片| 久久精品国产亚洲高清剧情介绍| 亚洲六月丁香色婷婷综合久久| 精品少妇一区二区三区在线播放| 91久久精品午夜一区二区| 国产不卡视频在线观看| 国内外精品视频| 美女国产一区二区三区| 亚洲h精品动漫在线观看| 亚洲欧洲成人av每日更新| 久久综合狠狠综合久久综合88| 欧美一区二区精品| 在线电影院国产精品| 在线观看一区二区视频| bt7086福利一区国产| 国产成人精品一区二区三区四区 | 精品少妇一区二区三区在线视频| 欧美日韩一区高清| 欧亚洲嫩模精品一区三区| 99久久精品国产网站| 成人app网站| 97精品久久久久中文字幕 | 一区二区三区高清在线| 国产精品成人免费精品自在线观看| 精品国产成人在线影院| 精品国产一区二区三区av性色| 91精品国产综合久久久蜜臀图片 | 色呦呦国产精品| 91老师国产黑色丝袜在线| 99久久精品国产网站| 99在线精品一区二区三区| a亚洲天堂av| 在线日韩国产精品| 欧美区在线观看| 欧美一区二区免费视频| 精品久久久久一区二区国产| www激情久久| 最新国产成人在线观看| 亚洲男人天堂av| 五月天亚洲精品| 久久国产精品色| 国产a视频精品免费观看| 不卡一区二区在线| 欧美午夜精品电影| 制服丝袜一区二区三区| 亚洲精品一区二区精华| 国产精品嫩草影院com| 一区二区三区四区五区视频在线观看 | 69堂精品视频| 久久一二三国产| 国产精品三级久久久久三级| 亚洲丝袜制服诱惑| 日韩制服丝袜先锋影音| 国产原创一区二区三区| 91视频免费播放| 制服丝袜中文字幕一区| 国产精品午夜久久| 亚洲成人自拍偷拍| 国产精品一区二区黑丝| 色偷偷88欧美精品久久久| 欧美一级生活片| 国产精品久久久久久久久快鸭| 亚洲国产美国国产综合一区二区| 免费看日韩精品| 成人av午夜影院| 欧美一卡2卡3卡4卡| 亚洲特黄一级片| 久久精品国产秦先生| 91麻豆自制传媒国产之光| 日韩一二在线观看| 亚洲色大成网站www久久九九| 舔着乳尖日韩一区| 91在线一区二区| 精品久久久久久无| 亚洲狠狠丁香婷婷综合久久久| 免费观看在线色综合| 在线视频欧美精品| 国产欧美久久久精品影院| 日产精品久久久久久久性色| 成人免费视频免费观看| 欧美日本国产一区| 日韩毛片高清在线播放| 国产一区二区精品久久99| 欧美精品日韩精品| 亚洲欧美区自拍先锋| 国产乱国产乱300精品| 91精品国产欧美日韩| 自拍偷自拍亚洲精品播放| 国产精品一区二区久久精品爱涩 | 国产精品福利一区二区| 久久99最新地址| 欧美日韩国产a| 亚洲精品中文在线影院| 成人一区二区在线观看| www久久精品| 国内成人自拍视频| 欧美电影免费观看高清完整版在线| 亚洲综合小说图片| 色综合久久综合| 亚洲天堂av老司机| av不卡在线播放| 国产精品免费视频一区| 韩国av一区二区三区| 精品国产91亚洲一区二区三区婷婷 | 国产馆精品极品| 久久精品欧美日韩精品 | 国产精品素人一区二区| 国产一区二区毛片| 久久久久久久久久久久久久久99 | 美国十次综合导航| 日韩一区二区电影在线| 日韩av电影免费观看高清完整版 | 99国产精品视频免费观看|