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

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

?? elgamaltest.java

?? 內(nèi)容:基于jdk1.4的加密算法的具體實現(xiàn)
?? JAVA
字號:
package org.bouncycastle.jce.provider.test;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.math.BigInteger;import java.security.AlgorithmParameterGenerator;import java.security.AlgorithmParameters;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.SecureRandom;import java.security.Security;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import javax.crypto.Cipher;import javax.crypto.interfaces.DHPrivateKey;import javax.crypto.interfaces.DHPublicKey;import javax.crypto.spec.DHParameterSpec;import org.bouncycastle.jce.provider.BouncyCastleProvider;import org.bouncycastle.util.test.SimpleTest;public class ElGamalTest    extends SimpleTest{    private BigInteger g512 = new BigInteger("153d5d6172adb43045b68ae8e1de1070b6137005686d29d3d73a7749199681ee5b212c9b96bfdcfa5b20cd5e3fd2044895d609cf9b410b7a0f12ca1cb9a428cc", 16);    private BigInteger p512 = new BigInteger("9494fec095f3b85ee286542b3836fc81a5dd0a0349b4c239dd38744d488cf8e31db8bcb7d33b41abb9e5a33cca9144b1cef332c94bf0573bf047a3aca98cdf3b", 16);    private BigInteger g768 = new BigInteger("7c240073c1316c621df461b71ebb0cdcc90a6e5527e5e126633d131f87461c4dc4afc60c2cb0f053b6758871489a69613e2a8b4c8acde23954c08c81cbd36132cfd64d69e4ed9f8e51ed6e516297206672d5c0a69135df0a5dcf010d289a9ca1", 16);    private BigInteger p768 = new BigInteger("8c9dd223debed1b80103b8b309715be009d48860ed5ae9b9d5d8159508efd802e3ad4501a7f7e1cfec78844489148cd72da24b21eddd01aa624291c48393e277cfc529e37075eccef957f3616f962d15b44aeab4039d01b817fde9eaa12fd73f", 16);    private BigInteger  g1024 = new BigInteger("1db17639cdf96bc4eabba19454f0b7e5bd4e14862889a725c96eb61048dcd676ceb303d586e30f060dbafd8a571a39c4d823982117da5cc4e0f89c77388b7a08896362429b94a18a327604eb7ff227bffbc83459ade299e57b5f77b50fb045250934938efa145511166e3197373e1b5b1e52de713eb49792bedde722c6717abf", 16);    private BigInteger  p1024 = new BigInteger("a00e283b3c624e5b2b4d9fbc2653b5185d99499b00fd1bf244c6f0bb817b4d1c451b2958d62a0f8a38caef059fb5ecd25d75ed9af403f5b5bdab97a642902f824e3c13789fed95fa106ddfe0ff4a707c85e2eb77d49e68f2808bcea18ce128b178cd287c6bc00efa9a1ad2a673fe0dceace53166f75b81d6709d5f8af7c66bb7", 16);    public String getName()    {        return "ElGamal";    }    private void testGP(        int         size,        BigInteger  g,        BigInteger  p)        throws Exception    {        DHParameterSpec  elParams = new DHParameterSpec(p, g);        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("ElGamal", "BC");        byte[]           in = "This is a test".getBytes();        keyGen.initialize(elParams);                KeyPair         keyPair = keyGen.generateKeyPair();        SecureRandom    rand = new SecureRandom();        Cipher  cipher = Cipher.getInstance("ElGamal", "BC");                cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic(), rand);                if (cipher.getOutputSize(in.length) != (size / 8) * 2)        {            fail("getOutputSize wrong on encryption");        }        byte[]  out = cipher.doFinal(in);                cipher.init(Cipher.DECRYPT_MODE, keyPair.getPrivate());                if (cipher.getOutputSize(out.length) != (size / 8) - 1)        {            fail("getOutputSize wrong on decryption");        }                //        // encrypt/decrypt        //        Cipher  c1 = Cipher.getInstance("ElGamal", "BC");        Cipher  c2 = Cipher.getInstance("ElGamal", "BC");        c1.init(Cipher.ENCRYPT_MODE, keyPair.getPublic(), rand);        byte[]  out1 = c1.doFinal(in);        c2.init(Cipher.DECRYPT_MODE, keyPair.getPrivate());        byte[]  out2 = c2.doFinal(out1);        if (!areEqual(in, out2))        {            fail(size + " encrypt test failed");        }                //        // encrypt/decrypt with update        //        int outLen = c1.update(in, 0, 2, out1, 0);                outLen += c1.doFinal(in, 2, in.length - 2, out1, outLen);        outLen = c2.update(out1, 0, 2, out2, 0);                outLen += c2.doFinal(out1, 2, out1.length - 2, out2, outLen);        if (!areEqual(in, out2))        {            fail(size + " encrypt with update test failed");        }        //        // public key encoding test        //        byte[]                  pubEnc = keyPair.getPublic().getEncoded();        KeyFactory              keyFac = KeyFactory.getInstance("ElGamal", "BC");        X509EncodedKeySpec      pubX509 = new X509EncodedKeySpec(pubEnc);        DHPublicKey             pubKey = (DHPublicKey)keyFac.generatePublic(pubX509);        DHParameterSpec         spec = pubKey.getParams();        if (!spec.getG().equals(elParams.getG()) || !spec.getP().equals(elParams.getP()))        {            fail(size + " bit public key encoding/decoding test failed on parameters");        }        if (!((DHPublicKey)keyPair.getPublic()).getY().equals(pubKey.getY()))        {            fail(size + " bit public key encoding/decoding test failed on y value");        }        //        // public key serialisation test        //        ByteArrayOutputStream   bOut = new ByteArrayOutputStream();        ObjectOutputStream      oOut = new ObjectOutputStream(bOut);        oOut.writeObject(keyPair.getPublic());        ByteArrayInputStream   bIn = new ByteArrayInputStream(bOut.toByteArray());        ObjectInputStream      oIn = new ObjectInputStream(bIn);        pubKey = (DHPublicKey)oIn.readObject();        spec = pubKey.getParams();        if (!spec.getG().equals(elParams.getG()) || !spec.getP().equals(elParams.getP()))        {            fail(size + " bit public key serialisation test failed on parameters");        }        if (!((DHPublicKey)keyPair.getPublic()).getY().equals(pubKey.getY()))        {            fail(size + " bit public key serialisation test failed on y value");        }        //        // private key encoding test        //        byte[]              privEnc = keyPair.getPrivate().getEncoded();        PKCS8EncodedKeySpec privPKCS8 = new PKCS8EncodedKeySpec(privEnc);        DHPrivateKey        privKey = (DHPrivateKey)keyFac.generatePrivate(privPKCS8);        spec = privKey.getParams();        if (!spec.getG().equals(elParams.getG()) || !spec.getP().equals(elParams.getP()))        {            fail(size + " bit private key encoding/decoding test failed on parameters");        }        if (!((DHPrivateKey)keyPair.getPrivate()).getX().equals(privKey.getX()))        {            fail(size + " bit private key encoding/decoding test failed on y value");        }        //        // private key serialisation test        //        bOut = new ByteArrayOutputStream();        oOut = new ObjectOutputStream(bOut);        oOut.writeObject(keyPair.getPrivate());        bIn = new ByteArrayInputStream(bOut.toByteArray());        oIn = new ObjectInputStream(bIn);        privKey = (DHPrivateKey)oIn.readObject();        spec = privKey.getParams();        if (!spec.getG().equals(elParams.getG()) || !spec.getP().equals(elParams.getP()))        {            fail(size + " bit private key serialisation test failed on parameters");        }        if (!((DHPrivateKey)keyPair.getPrivate()).getX().equals(privKey.getX()))        {            fail(size + " bit private key serialisation test failed on y value");        }    }    private void testRandom(        int         size)        throws Exception    {        AlgorithmParameterGenerator a = AlgorithmParameterGenerator.getInstance("ElGamal", "BC");        a.init(size, new SecureRandom());        AlgorithmParameters params = a.generateParameters();        byte[] encodeParams = params.getEncoded();        AlgorithmParameters a2 = AlgorithmParameters.getInstance("ElGamal", "BC");        a2.init(encodeParams);        // a and a2 should be equivalent!        byte[] encodeParams_2 = a2.getEncoded();        if (!areEqual(encodeParams, encodeParams_2))        {            fail(this.getName() + ": encode/decode parameters failed");        }        DHParameterSpec elP = (DHParameterSpec)params.getParameterSpec(DHParameterSpec.class);        testGP(size, elP.getG(), elP.getP());    }    public void performTest()        throws Exception    {        testGP(512, g512, p512);        testGP(768, g768, p768);        testGP(1024, g1024, p1024);                testRandom(256);    }    public static void main(        String[]    args)    {        Security.addProvider(new BouncyCastleProvider());        runTest(new ElGamalTest());    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区忘忧草| 免费在线看成人av| 免费看日韩精品| av男人天堂一区| 欧美一区日本一区韩国一区| 欧美激情一区二区三区不卡| 日韩不卡在线观看日韩不卡视频| 成人国产精品免费| www久久久久| 日韩精品亚洲一区| 91在线观看污| 久久精品亚洲精品国产欧美kt∨ | 国内外成人在线| 91国产丝袜在线播放| 国产丝袜欧美中文另类| 日韩黄色片在线观看| 色天使色偷偷av一区二区| 久久香蕉国产线看观看99| 日韩精品三区四区| 欧美日韩精品电影| 一区二区三区欧美日| 成人久久视频在线观看| 国产色一区二区| 麻豆国产精品一区二区三区 | 精品在线一区二区| 欧美另类一区二区三区| 亚洲精品成a人| 色综合一个色综合| 奇米精品一区二区三区在线观看一| 成人午夜短视频| 国产女主播在线一区二区| 美女在线视频一区| 日韩欧美一卡二卡| 麻豆高清免费国产一区| 日韩一级大片在线观看| 日韩影院精彩在线| 欧美一级片免费看| 蓝色福利精品导航| 久久久一区二区| 成人在线视频一区二区| 国产精品美女久久久久久久久久久 | 午夜电影网一区| 欧美日韩精品专区| 日韩av电影免费观看高清完整版在线观看| 欧美性感一类影片在线播放| 亚洲综合在线视频| 在线成人av网站| 日韩av中文字幕一区二区| 欧美成人三级电影在线| 国产福利91精品一区| 中文字幕一区二区三区在线观看 | 亚洲国产成人午夜在线一区| 粉嫩av亚洲一区二区图片| 国产精品视频线看| 日本久久电影网| 美腿丝袜在线亚洲一区 | 一区在线观看视频| 日本精品裸体写真集在线观看 | 欧美日韩高清不卡| 国内精品视频666| 中文字幕在线一区| 欧美三级在线视频| 精品一区精品二区高清| 自拍偷自拍亚洲精品播放| 精品视频999| 国产在线观看一区二区| 日韩毛片精品高清免费| 欧美色精品天天在线观看视频| 免费成人在线网站| 中文字幕亚洲区| 日韩欧美国产高清| 91香蕉视频mp4| 激情五月激情综合网| 亚洲欧美色图小说| 精品国产凹凸成av人导航| 99久久夜色精品国产网站| 奇米一区二区三区av| 亚洲天堂精品视频| 2021久久国产精品不只是精品| 91免费国产在线观看| 久久国产生活片100| 亚洲久本草在线中文字幕| 26uuu亚洲综合色欧美| 欧美三区在线视频| 99视频国产精品| 国产一区二区在线观看视频| 一区二区三区 在线观看视频| 欧美精品一区二区三区视频| 欧美三级视频在线| 色综合久久99| 不卡高清视频专区| 国产剧情一区二区| 久久国产精品72免费观看| 亚洲国产美国国产综合一区二区| 国产精品久久久久久久久快鸭 | 首页国产欧美久久| 一区二区久久久| 国产精品久久一级| 久久精品免视看| 日韩三级免费观看| 欧美挠脚心视频网站| 色婷婷久久久综合中文字幕| 丁香一区二区三区| 国产一区二区三区日韩| 奇米色777欧美一区二区| 亚洲成人一二三| 亚洲第一主播视频| 亚洲综合区在线| 亚洲乱码中文字幕| 亚洲欧洲日产国产综合网| 国产女主播在线一区二区| 久久久久久久久岛国免费| 日韩免费高清av| 欧美一区二区久久久| 欧美顶级少妇做爰| 91精品国产乱码久久蜜臀| 欧美色图在线观看| 在线不卡一区二区| 91精品婷婷国产综合久久竹菊| 在线视频亚洲一区| 精品视频在线视频| 欧美精品亚洲二区| 日韩欧美自拍偷拍| 久久综合色播五月| 国产蜜臀97一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品久久久久久妇女6080 | 亚洲国产精品久久不卡毛片 | 日韩福利电影在线| 精品无人区卡一卡二卡三乱码免费卡| 日韩精品成人一区二区三区| 奇米精品一区二区三区在线观看 | 亚洲精品日韩一| 亚洲成在线观看| 日韩成人dvd| 国产成人在线电影| 成人的网站免费观看| 色噜噜久久综合| 日韩视频免费直播| 国产精品毛片无遮挡高清| 亚洲免费在线看| 秋霞影院一区二区| 丁香婷婷综合网| 欧美日韩一区二区在线观看 | 国产视频一区在线播放| 国产精品免费久久| 亚洲二区视频在线| 国产在线日韩欧美| 日本精品免费观看高清观看| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲视频免费在线| 日本欧美大码aⅴ在线播放| 国产成人亚洲综合a∨婷婷| 色老综合老女人久久久| 日韩精品一区二区三区四区| 国产精品美女久久久久久久久| 亚洲午夜av在线| 国产69精品久久99不卡| 欧美喷潮久久久xxxxx| 国产情人综合久久777777| 亚洲一区成人在线| 成人午夜又粗又硬又大| 欧美一区永久视频免费观看| 国产精品乱码人人做人人爱| 亚洲v日本v欧美v久久精品| 高清视频一区二区| 337p亚洲精品色噜噜| 国产精品的网站| 老司机精品视频线观看86| 在线精品观看国产| 亚洲国产成人午夜在线一区| 男女男精品网站| 日本道色综合久久| 日本一二三不卡| 视频精品一区二区| 色综合中文字幕| 国产精品久久久久久久久免费桃花 | 在线观看中文字幕不卡| 中文在线资源观看网站视频免费不卡| 亚洲电影在线免费观看| 色综合咪咪久久| 国产精品美女久久福利网站| 极品少妇xxxx偷拍精品少妇| 欧美人与禽zozo性伦| 亚洲三级电影网站| 成人av综合一区| 国产亚洲综合色| 久草在线在线精品观看| 日韩三级视频中文字幕| 日韩av一二三| 欧美精品精品一区| 午夜久久久久久| 欧美午夜精品久久久久久孕妇| 亚洲天堂精品视频| 99久久综合精品| 国产精品狼人久久影院观看方式| 国产一区二区三区四区五区入口| 日韩欧美在线综合网| 喷水一区二区三区| 欧美一级欧美三级在线观看|