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

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

?? pbe.java

?? 內容:基于jdk1.4的加密算法的具體實現
?? JAVA
字號:
package org.bouncycastle.jce.provider;import java.security.spec.AlgorithmParameterSpec;import javax.crypto.spec.PBEKeySpec;import javax.crypto.spec.PBEParameterSpec;import org.bouncycastle.crypto.CipherParameters;import org.bouncycastle.crypto.PBEParametersGenerator;import org.bouncycastle.crypto.digests.MD5Digest;import org.bouncycastle.crypto.digests.RIPEMD160Digest;import org.bouncycastle.crypto.digests.SHA1Digest;import org.bouncycastle.crypto.digests.SHA256Digest;import org.bouncycastle.crypto.digests.TigerDigest;import org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator;import org.bouncycastle.crypto.generators.PKCS12ParametersGenerator;import org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator;import org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator;import org.bouncycastle.crypto.params.DESParameters;import org.bouncycastle.crypto.params.KeyParameter;import org.bouncycastle.crypto.params.ParametersWithIV;public interface PBE{    //    // PBE Based encryption constants - by default we do PKCS12 with SHA-1    //    static final int        MD5         = 0;    static final int        SHA1        = 1;    static final int        RIPEMD160   = 2;    static final int        TIGER       = 3;    static final int        SHA256      = 4;    static final int        PKCS5S1     = 0;    static final int        PKCS5S2     = 1;    static final int        PKCS12      = 2;    static final int        OPENSSL     = 3;    /**     * uses the appropriate mixer to generate the key and IV if neccessary.     */    static class Util    {        static private PBEParametersGenerator makePBEGenerator(            int                     type,            int                     hash)        {            PBEParametersGenerator  generator;                if (type == PKCS5S1)            {                switch (hash)                {                case MD5:                    generator = new PKCS5S1ParametersGenerator(new MD5Digest());                    break;                case SHA1:                    generator = new PKCS5S1ParametersGenerator(new SHA1Digest());                    break;                default:                    throw new IllegalStateException("PKCS5 scheme 1 only supports only MD5 and SHA1.");                }            }            else if (type == PKCS5S2)            {                generator = new PKCS5S2ParametersGenerator();            }            else if (type == PKCS12)            {                switch (hash)                {                case MD5:                    generator = new PKCS12ParametersGenerator(new MD5Digest());                    break;                case SHA1:                    generator = new PKCS12ParametersGenerator(new SHA1Digest());                    break;                case RIPEMD160:                    generator = new PKCS12ParametersGenerator(new RIPEMD160Digest());                    break;                case TIGER:                    generator = new PKCS12ParametersGenerator(new TigerDigest());                    break;                case SHA256:                    generator = new PKCS12ParametersGenerator(new SHA256Digest());                    break;                default:                    throw new IllegalStateException("unknown digest scheme for PBE encryption.");                }            }            else            {                generator = new OpenSSLPBEParametersGenerator();            }                return generator;        }        /**         * construct a key and iv (if neccessary) suitable for use with a          * Cipher.         */        static CipherParameters makePBEParameters(            JCEPBEKey               pbeKey,            AlgorithmParameterSpec  spec,            String                  targetAlgorithm)        {            if ((spec == null) || !(spec instanceof PBEParameterSpec))            {                throw new IllegalArgumentException("Need a PBEParameter spec with a PBE key.");            }                PBEParameterSpec        pbeParam = (PBEParameterSpec)spec;            PBEParametersGenerator  generator = makePBEGenerator(pbeKey.getType(), pbeKey.getDigest());            byte[]                  key = pbeKey.getEncoded();            CipherParameters        param;                if (pbeKey.shouldTryWrongPKCS12())            {                key = new byte[2];            }                        generator.init(key, pbeParam.getSalt(), pbeParam.getIterationCount());            if (pbeKey.getIvSize() != 0)            {                param = generator.generateDerivedParameters(pbeKey.getKeySize(), pbeKey.getIvSize());            }            else            {                param = generator.generateDerivedParameters(pbeKey.getKeySize());            }            if (targetAlgorithm.startsWith("DES"))            {                if (param instanceof ParametersWithIV)                {                    KeyParameter    kParam = (KeyParameter)((ParametersWithIV)param).getParameters();                    DESParameters.setOddParity(kParam.getKey());                }                else                {                    KeyParameter    kParam = (KeyParameter)param;                    DESParameters.setOddParity(kParam.getKey());                }            }            for (int i = 0; i != key.length; i++)            {                key[i] = 0;            }            return param;        }        /**         * generate a PBE based key suitable for a MAC algorithm, the         * key size is chosen according the MAC size, or the hashing algorithm,         * whichever is greater.         */        static CipherParameters makePBEMacParameters(            JCEPBEKey               pbeKey,            AlgorithmParameterSpec  spec)        {            if ((spec == null) || !(spec instanceof PBEParameterSpec))            {                throw new IllegalArgumentException("Need a PBEParameter spec with a PBE key.");            }                PBEParameterSpec        pbeParam = (PBEParameterSpec)spec;            PBEParametersGenerator  generator = makePBEGenerator(pbeKey.getType(), pbeKey.getDigest());            byte[]                  key = pbeKey.getEncoded();            CipherParameters        param;                if (pbeKey.shouldTryWrongPKCS12())            {                key = new byte[2];            }                        generator.init(key, pbeParam.getSalt(), pbeParam.getIterationCount());            param = generator.generateDerivedMacParameters(pbeKey.getKeySize());                for (int i = 0; i != key.length; i++)            {                key[i] = 0;            }            return param;        }            /**         * construct a key and iv (if neccessary) suitable for use with a          * Cipher.         */        static CipherParameters makePBEParameters(            PBEKeySpec              keySpec,            int                     type,            int                     hash,            int                     keySize,            int                     ivSize)        {                PBEParametersGenerator  generator = makePBEGenerator(type, hash);            byte[]                  key;            CipherParameters        param;                if (type == PKCS12)            {                key = PBEParametersGenerator.PKCS12PasswordToBytes(keySpec.getPassword());            }            else            {                   key = PBEParametersGenerator.PKCS5PasswordToBytes(keySpec.getPassword());            }                        generator.init(key, keySpec.getSalt(), keySpec.getIterationCount());                if (ivSize != 0)            {                param = generator.generateDerivedParameters(keySize, ivSize);            }            else            {                param = generator.generateDerivedParameters(keySize);            }                for (int i = 0; i != key.length; i++)            {                key[i] = 0;            }                return param;        }            /**         * generate a PBE based key suitable for a MAC algorithm, the         * key size is chosen according the MAC size, or the hashing algorithm,         * whichever is greater.         */        static CipherParameters makePBEMacParameters(            PBEKeySpec              keySpec,            int                     type,            int                     hash,            int                     keySize)        {            PBEParametersGenerator  generator = makePBEGenerator(type, hash);            byte[]                  key;            CipherParameters        param;                if (type == PKCS12)            {                key = PBEParametersGenerator.PKCS12PasswordToBytes(keySpec.getPassword());            }            else            {                   key = PBEParametersGenerator.PKCS5PasswordToBytes(keySpec.getPassword());            }                        generator.init(key, keySpec.getSalt(), keySpec.getIterationCount());                param = generator.generateDerivedMacParameters(keySize);                for (int i = 0; i != key.length; i++)            {                key[i] = 0;            }                return param;        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线一区二区视频| 色先锋久久av资源部| 亚洲成国产人片在线观看| 国产精品国产三级国产普通话99| 日韩一区二区在线看| 欧美日韩情趣电影| 欧美亚洲丝袜传媒另类| 欧美在线观看视频一区二区| 色94色欧美sute亚洲线路一久 | 亚洲一区二区五区| 国产精品久久久久久久裸模 | 欧美日本在线观看| 欧美图片一区二区三区| 欧美三级电影在线观看| 欧美日韩国产123区| 日韩午夜精品视频| 精品国产免费人成在线观看| 久久这里都是精品| 国产精品毛片a∨一区二区三区| 国产精品另类一区| 亚洲五码中文字幕| 美腿丝袜亚洲色图| 国产精品资源网站| 91在线看国产| 欧美日韩午夜在线视频| 精品国产乱码久久久久久免费| 精品成人一区二区三区四区| 久久精品人人做人人爽人人| 国产精品不卡一区二区三区| 亚洲一二三四在线观看| 蜜桃视频一区二区三区| 国产91精品一区二区| 在线亚洲人成电影网站色www| 91国内精品野花午夜精品| 4438x亚洲最大成人网| 欧美精品一区二区久久久| 中文av一区特黄| 日本不卡一区二区| 国产福利91精品一区| 欧美午夜精品一区二区蜜桃| 精品三级在线看| 一区二区三区四区精品在线视频 | 免费成人在线网站| 成人h动漫精品| 日韩一卡二卡三卡| 亚洲卡通动漫在线| 国产一区二区三区av电影| 一本大道综合伊人精品热热| 日韩欧美久久一区| 亚洲一区在线观看免费观看电影高清| 老司机精品视频线观看86| 日本精品一区二区三区高清 | 17c精品麻豆一区二区免费| 热久久国产精品| 东方aⅴ免费观看久久av| 日韩一二在线观看| 亚洲免费视频中文字幕| 国产99精品国产| 日韩视频在线一区二区| 一区二区三区久久| av成人免费在线观看| 日韩欧美卡一卡二| 午夜欧美电影在线观看| 96av麻豆蜜桃一区二区| 中文字幕第一区二区| 精品一区二区三区免费视频| 色一区在线观看| 国产精品麻豆99久久久久久| 国产九色sp调教91| 精品少妇一区二区三区日产乱码 | 日本va欧美va瓶| 91黄色激情网站| 亚洲免费观看高清在线观看| 国产精品一区二区你懂的| 欧美成人一区二区三区在线观看| 亚洲一卡二卡三卡四卡| 91黄色免费看| 亚洲精品亚洲人成人网| 大白屁股一区二区视频| 国产欧美日韩另类视频免费观看| 蜜臀久久99精品久久久画质超高清 | 91精品国模一区二区三区| 亚洲欧美激情小说另类| 91热门视频在线观看| 中文字幕中文在线不卡住| 波多野洁衣一区| 中文字幕一区二区三区在线播放| 国产精品一区二区在线播放| 久久久噜噜噜久噜久久综合| 国内久久精品视频| 精品国产第一区二区三区观看体验| 美腿丝袜亚洲综合| 久久综合色8888| 成人精品小蝌蚪| 中文字幕一区二区三| 91麻豆蜜桃一区二区三区| 亚洲日本护士毛茸茸| 精品视频一区三区九区| 水野朝阳av一区二区三区| 制服丝袜一区二区三区| 国产一区二区伦理| 中文字幕av一区二区三区高 | 午夜视频在线观看一区| 91精品国产综合久久久久久久久久| 美女国产一区二区三区| 国产亚洲精品超碰| 97精品国产露脸对白| 偷窥国产亚洲免费视频| 欧美精品一区二区在线播放| www.av亚洲| 香蕉加勒比综合久久| 国产欧美日韩卡一| 欧美伊人久久久久久久久影院 | 国产精品久久久久一区二区三区| 91电影在线观看| 久久99久久久久久久久久久| 国产精品视频一二三区| 欧美日韩aaaaaa| 国产成人精品aa毛片| 亚洲午夜精品在线| 欧美激情资源网| 欧美精品丝袜中出| 成人一道本在线| 青青青爽久久午夜综合久久午夜| 久久久高清一区二区三区| 欧美亚洲国产一区二区三区va | 日韩美女视频一区二区在线观看| 成人综合在线网站| 免费在线一区观看| 亚洲激情男女视频| 欧美激情一区三区| 91精品国产综合久久婷婷香蕉| 91一区一区三区| 国产一二精品视频| 性欧美大战久久久久久久久| 中文字幕综合网| 久久蜜臀中文字幕| 日韩一区国产二区欧美三区| 色婷婷综合久色| 丁香天五香天堂综合| 麻豆精品一区二区| 日日夜夜免费精品| 一区二区三区中文字幕精品精品| 欧美国产一区二区| 久久久久久久久久久久久久久99| 欧美精品在线一区二区三区| 99视频国产精品| 9i在线看片成人免费| 国产mv日韩mv欧美| 国产乱人伦精品一区二区在线观看| 日本欧美一区二区在线观看| 亚洲国产综合色| 一区二区国产盗摄色噜噜| 亚洲欧美日韩国产另类专区| 国产精品欧美久久久久一区二区| 国产亚洲欧美日韩日本| 精品国产乱码久久久久久久| 精品国产一区二区国模嫣然| 精品日本一线二线三线不卡| 精品三级在线看| 国产日韩欧美精品在线| 国产午夜亚洲精品理论片色戒| 精品国产乱码久久久久久夜甘婷婷| 精品国产一区二区三区久久久蜜月| 精品日韩在线一区| 国产婷婷色一区二区三区四区| 国产人妖乱国产精品人妖| 国产精品国产精品国产专区不蜜| 亚洲国产精品成人久久综合一区| 欧美激情在线一区二区三区| 中文字幕亚洲不卡| 一个色综合网站| 日韩激情av在线| 毛片av一区二区| 国产不卡免费视频| 波多野结衣91| 欧美日韩高清在线| 久久久久久久精| 中文字幕中文字幕中文字幕亚洲无线| 综合亚洲深深色噜噜狠狠网站| 一区二区三区在线影院| 性欧美大战久久久久久久久| 伦理电影国产精品| 成年人午夜久久久| 欧美精品777| 久久久久国产精品厨房| 亚洲视频小说图片| 日韩成人精品在线观看| 美女精品自拍一二三四| 成人av午夜影院| 欧美综合一区二区三区| 欧美一区二区三区在线观看| 久久久久九九视频| 亚洲小少妇裸体bbw| 国产乱国产乱300精品| 色综合久久99| 久久午夜羞羞影院免费观看| 亚洲精品综合在线| 粉嫩一区二区三区在线看| 欧美色综合影院|