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

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

?? brokenjceblockcipher.java

?? 內容:基于jdk1.4的加密算法的具體實現
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package org.bouncycastle.jce.provider;import java.security.AlgorithmParameters;import java.security.InvalidAlgorithmParameterException;import java.security.InvalidKeyException;import java.security.Key;import java.security.KeyFactory;import java.security.NoSuchAlgorithmException;import java.security.NoSuchProviderException;import java.security.SecureRandom;import java.security.spec.AlgorithmParameterSpec;import java.security.spec.InvalidKeySpecException;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException;import javax.crypto.NoSuchPaddingException;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.PBEParameterSpec;import javax.crypto.spec.RC2ParameterSpec;import javax.crypto.spec.RC5ParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.bouncycastle.crypto.BlockCipher;import org.bouncycastle.crypto.BufferedBlockCipher;import org.bouncycastle.crypto.CipherParameters;import org.bouncycastle.crypto.DataLengthException;import org.bouncycastle.crypto.InvalidCipherTextException;import org.bouncycastle.crypto.engines.DESEngine;import org.bouncycastle.crypto.engines.DESedeEngine;import org.bouncycastle.crypto.engines.TwofishEngine;import org.bouncycastle.crypto.modes.CBCBlockCipher;import org.bouncycastle.crypto.modes.CFBBlockCipher;import org.bouncycastle.crypto.modes.CTSBlockCipher;import org.bouncycastle.crypto.modes.OFBBlockCipher;import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher;import org.bouncycastle.crypto.params.KeyParameter;import org.bouncycastle.crypto.params.ParametersWithIV;import org.bouncycastle.crypto.params.RC2Parameters;import org.bouncycastle.crypto.params.RC5Parameters;public class BrokenJCEBlockCipher    implements BrokenPBE{    //    // specs we can handle.    //    private Class[]                 availableSpecs =                                    {                                        IvParameterSpec.class,                                        PBEParameterSpec.class,                                        RC2ParameterSpec.class,                                        RC5ParameterSpec.class                                    };     private BufferedBlockCipher     cipher;    private ParametersWithIV        ivParam;    private int                     pbeType = PKCS12;    private int                     pbeHash = SHA1;    private int                     pbeKeySize;    private int                     pbeIvSize;    private int                     ivLength = 0;    private AlgorithmParameters     engineParams = null;    protected BrokenJCEBlockCipher(        BlockCipher engine)    {        cipher = new PaddedBufferedBlockCipher(engine);    }            protected BrokenJCEBlockCipher(        BlockCipher engine,        int         pbeType,        int         pbeHash,        int         pbeKeySize,        int         pbeIvSize)    {        cipher = new PaddedBufferedBlockCipher(engine);        this.pbeType = pbeType;        this.pbeHash = pbeHash;        this.pbeKeySize = pbeKeySize;        this.pbeIvSize = pbeIvSize;    }    protected int engineGetBlockSize()     {        return cipher.getBlockSize();    }    protected byte[] engineGetIV()     {        return (ivParam != null) ? ivParam.getIV() : null;    }    protected int engineGetKeySize(        Key     key)     {        return key.getEncoded().length;    }    protected int engineGetOutputSize(        int     inputLen)     {        return cipher.getOutputSize(inputLen);    }    protected AlgorithmParameters engineGetParameters()     {        if (engineParams == null)        {            if (ivParam != null)            {                String  name = cipher.getUnderlyingCipher().getAlgorithmName();                if (name.indexOf('/') >= 0)                {                    name = name.substring(0, name.indexOf('/'));                }                try                {                    engineParams = AlgorithmParameters.getInstance(name, "BC");                    engineParams.init(ivParam.getIV());                }                catch (Exception e)                {                    throw new RuntimeException(e.toString());                }            }        }        return engineParams;    }    protected void engineSetMode(        String  mode)     {        String  modeName = mode.toUpperCase();        if (modeName.equals("ECB"))        {            ivLength = 0;            cipher = new PaddedBufferedBlockCipher(cipher.getUnderlyingCipher());        }        else if (modeName.equals("CBC"))        {            ivLength = cipher.getUnderlyingCipher().getBlockSize();            cipher = new PaddedBufferedBlockCipher(                            new CBCBlockCipher(cipher.getUnderlyingCipher()));        }        else if (modeName.startsWith("OFB"))        {            ivLength = cipher.getUnderlyingCipher().getBlockSize();            if (modeName.length() != 3)            {                int wordSize = Integer.parseInt(modeName.substring(3));                cipher = new PaddedBufferedBlockCipher(                                new OFBBlockCipher(cipher.getUnderlyingCipher(), wordSize));            }            else            {                cipher = new PaddedBufferedBlockCipher(                        new OFBBlockCipher(cipher.getUnderlyingCipher(), 8 * cipher.getBlockSize()));            }        }        else if (modeName.startsWith("CFB"))        {            ivLength = cipher.getUnderlyingCipher().getBlockSize();            if (modeName.length() != 3)            {                int wordSize = Integer.parseInt(modeName.substring(3));                cipher = new PaddedBufferedBlockCipher(                                new CFBBlockCipher(cipher.getUnderlyingCipher(), wordSize));            }            else            {                cipher = new PaddedBufferedBlockCipher(                        new CFBBlockCipher(cipher.getUnderlyingCipher(), 8 * cipher.getBlockSize()));            }        }        else        {            throw new IllegalArgumentException("can't support mode " + mode);        }    }    protected void engineSetPadding(        String  padding)     throws NoSuchPaddingException    {        String  paddingName = padding.toUpperCase();        if (paddingName.equals("NOPADDING"))        {            cipher = new BufferedBlockCipher(cipher.getUnderlyingCipher());        }        else if (paddingName.equals("PKCS5PADDING") || paddingName.equals("PKCS7PADDING") || paddingName.equals("ISO10126PADDING"))        {            cipher = new PaddedBufferedBlockCipher(cipher.getUnderlyingCipher());        }        else if (paddingName.equals("WITHCTS"))        {            cipher = new CTSBlockCipher(cipher.getUnderlyingCipher());        }        else        {            throw new NoSuchPaddingException("Padding " + padding + " unknown.");        }    }    protected void engineInit(        int                     opmode,        Key                     key,        AlgorithmParameterSpec  params,        SecureRandom            random)     throws InvalidKeyException, InvalidAlgorithmParameterException    {        CipherParameters        param;        //        // a note on iv's - if ivLength is zero the IV gets ignored (we don't use it).        //        if (key instanceof JCEPBEKey)        {            param = BrokenPBE.Util.makePBEParameters((JCEPBEKey)key, params, pbeType, pbeHash,                        cipher.getUnderlyingCipher().getAlgorithmName(), pbeKeySize, pbeIvSize);            if (pbeIvSize != 0)            {                ivParam = (ParametersWithIV)param;            }        }        else if (params == null)        {            param = new KeyParameter(key.getEncoded());        }        else if (params instanceof IvParameterSpec)        {            if (ivLength != 0)            {                param = new ParametersWithIV(new KeyParameter(key.getEncoded()), ((IvParameterSpec)params).getIV());                ivParam = (ParametersWithIV)param;            }            else            {                param = new KeyParameter(key.getEncoded());            }        }        else if (params instanceof RC2ParameterSpec)        {            RC2ParameterSpec    rc2Param = (RC2ParameterSpec)params;            param = new RC2Parameters(key.getEncoded(), ((RC2ParameterSpec)params).getEffectiveKeyBits());            if (rc2Param.getIV() != null && ivLength != 0)            {                param = new ParametersWithIV(param, rc2Param.getIV());                ivParam = (ParametersWithIV)param;            }        }        else if (params instanceof RC5ParameterSpec)        {            RC5ParameterSpec    rc5Param = (RC5ParameterSpec)params;            param = new RC5Parameters(key.getEncoded(), ((RC5ParameterSpec)params).getRounds());            if (rc5Param.getWordSize() != 32)            {                throw new IllegalArgumentException("can only accept RC5 word size 32 (at the moment...)");            }            if ((rc5Param.getIV() != null) && (ivLength != 0))            {                param = new ParametersWithIV(param, rc5Param.getIV());                ivParam = (ParametersWithIV)param;            }        }        else        {            throw new InvalidAlgorithmParameterException("unknown parameter type.");        }        if ((ivLength != 0) && !(param instanceof ParametersWithIV))        {            if (random == null)            {                random = new SecureRandom();            }            if ((opmode == Cipher.ENCRYPT_MODE) || (opmode == Cipher.WRAP_MODE))            {                byte[]  iv = new byte[ivLength];                random.nextBytes(iv);                param = new ParametersWithIV(param, iv);                ivParam = (ParametersWithIV)param;            }            else            {                throw new InvalidAlgorithmParameterException("no IV set when one expected");            }        }        switch (opmode)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区国产| 99精品欧美一区二区三区综合在线| 91在线视频官网| 一区二区三区**美女毛片| 91视频在线观看免费| 亚洲图片欧美视频| 欧美videossexotv100| 国产v综合v亚洲欧| 亚洲免费在线看| 在线播放日韩导航| 国产精品影视在线| 一卡二卡三卡日韩欧美| 精品精品国产高清a毛片牛牛| 国产成人高清视频| 亚洲综合图片区| 精品国产乱码久久久久久久| 成人免费观看视频| 日韩精品一二三| 国产精品国产三级国产普通话99| 欧美三级中文字幕| 国产精品一区二区x88av| 一区二区三区四区五区视频在线观看| 欧美日韩大陆在线| 不卡的看片网站| 另类综合日韩欧美亚洲| 亚洲人成网站影音先锋播放| 欧美一级久久久久久久大片| 91麻豆精东视频| 久久99久久精品欧美| 一区二区三区久久| 国产午夜精品在线观看| 欧美一区二视频| 欧美色综合网站| 成人高清在线视频| 国产一区二区三区高清播放| 奇米精品一区二区三区在线观看一| 国产女同性恋一区二区| 日韩欧美第一区| 欧美理论在线播放| 色菇凉天天综合网| 成人免费毛片嘿嘿连载视频| 久久av资源站| 日本不卡一二三| 一区二区三区精密机械公司| 欧美国产精品劲爆| 国产日韩精品久久久| 精品人伦一区二区色婷婷| 欧美久久久久久久久| 欧美在线免费视屏| 在线免费观看成人短视频| 99久久综合99久久综合网站| 成人黄色综合网站| av欧美精品.com| 99久久综合色| 在线免费观看日韩欧美| 欧美日韩一区视频| 777xxx欧美| 日韩欧美成人激情| 久久久久久久久久久黄色| 久久亚洲精品国产精品紫薇| 久久综合五月天婷婷伊人| 精品国产凹凸成av人导航| 精品久久久久久久久久久久久久久久久 | 亚洲一区在线观看视频| 亚洲精品国久久99热| 亚洲激情自拍视频| 亚洲曰韩产成在线| 日本在线不卡一区| 毛片基地黄久久久久久天堂| 精品综合免费视频观看| 国产乱码精品一区二区三| 成人av综合在线| 在线欧美日韩国产| 日韩一区二区三区视频在线观看| 欧美电影免费观看高清完整版在线| 精品久久国产字幕高潮| 国产日产精品一区| 亚洲一区在线观看网站| 日韩国产高清影视| 国产精品一级二级三级| 色94色欧美sute亚洲线路二 | 日韩一区二区三区视频| 久久一日本道色综合| 中文字幕巨乱亚洲| 亚洲第一综合色| 韩国理伦片一区二区三区在线播放| 国产成人精品免费网站| 欧美日韩在线播放一区| 国产日韩欧美亚洲| 亚洲成a人在线观看| 久久99精品久久久久久久久久久久| 成人高清免费观看| 日韩欧美一区中文| 亚洲精品视频免费观看| 精彩视频一区二区| 欧美日韩一区二区三区四区| 国产视频亚洲色图| 日日摸夜夜添夜夜添精品视频 | 亚洲日本一区二区| 国产综合久久久久久久久久久久| 色综合久久中文字幕综合网| 精品美女被调教视频大全网站| 亚洲三级久久久| 国产精品18久久久| 欧美一区二区在线看| 亚洲青青青在线视频| 国产尤物一区二区| 欧美一区二区久久久| 亚洲综合一二区| eeuss鲁片一区二区三区| 精品久久国产字幕高潮| 无码av免费一区二区三区试看 | 日韩欧美国产一二三区| 亚洲精品免费在线播放| 成人禁用看黄a在线| 久久综合久久鬼色中文字| 青草国产精品久久久久久| 欧美色图12p| 一区二区三区欧美亚洲| 一本在线高清不卡dvd| 国产精品天天看| 成人少妇影院yyyy| 欧美激情中文字幕一区二区| 极品尤物av久久免费看| 欧美一区二区三区日韩视频| 亚洲高清免费在线| 欧美三级日韩三级国产三级| 亚洲免费观看高清完整版在线观看 | 欧美激情在线一区二区三区| 国产主播一区二区| 欧美精品一区二区三区蜜桃| 日韩va亚洲va欧美va久久| 欧美日韩国产片| 五月天视频一区| 日韩一区二区免费在线观看| 日韩免费一区二区三区在线播放| 亚洲一区二区不卡免费| 丰满放荡岳乱妇91ww| 国产亚洲一区二区三区| 亚洲少妇中出一区| a亚洲天堂av| 1000精品久久久久久久久| 97久久精品人人做人人爽| 亚洲视频狠狠干| 欧美日韩免费高清一区色橹橹| 亚洲成人精品一区二区| 欧美一区二区三区在线观看| 麻豆91精品91久久久的内涵| www一区二区| jizzjizzjizz欧美| 一区二区三区不卡在线观看| 欧美三级电影在线看| 久久精品国产在热久久| 久久久久99精品国产片| 99久久精品久久久久久清纯| 一区二区在线电影| 波多野结衣一区二区三区 | 91成人在线精品| 亚州成人在线电影| 日韩女优av电影| 粉嫩嫩av羞羞动漫久久久| 一区精品在线播放| 91精品国产黑色紧身裤美女| 国内成人免费视频| 亚洲男人的天堂网| 欧美一区二区视频在线观看2022| 亚洲二区视频在线| 久久亚洲精华国产精华液| 日本精品免费观看高清观看| 奇米777欧美一区二区| 国产精品三级电影| 在线播放91灌醉迷j高跟美女 | 中文乱码免费一区二区| 欧美日韩亚洲另类| 成人永久免费视频| 免费人成在线不卡| 亚洲一区二区三区激情| 中文字幕欧美国产| 日韩三级免费观看| 色成人在线视频| 成人免费视频国产在线观看| 日韩主播视频在线| 亚洲人成在线观看一区二区| 久久网站热最新地址| 欧美日韩一区二区三区高清| 成人app网站| 国产一区二三区好的| 日韩精品一区第一页| 亚洲色图都市小说| 国产精品免费aⅴ片在线观看| 在线播放视频一区| 欧美日韩视频在线第一区| 99视频热这里只有精品免费| 国产福利一区二区三区视频在线 | 精品国产一区二区三区四区四 | 在线观看一区二区精品视频| 国产精品影视天天线| 极品少妇xxxx偷拍精品少妇| 亚洲aⅴ怡春院| 亚洲一区二区偷拍精品|