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

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

?? asymmetric.java

?? 一個java開發的非常全面的關于證書發放
?? JAVA
字號:
/*
  Name:         Asymmetric.java
  Licensing:    LGPL

  API:          Sun (http://java.sun.com) JCE 1.2.2 API (cleanroom implementation by Bouncy Castle)
  Provider:     Bouncy Castle (http://www.bouncycastle.org)

  Disclaimer:

  COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND,
  EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE
  IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
  RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE
  PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR)
  ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY
  CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED
  HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

  (C) Copyright 2003 Gert Van Ham
*/

package net.sourceforge.jcetaglib.lib;

import net.sourceforge.jcetaglib.exceptions.CryptoException;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Base64;

import javax.crypto.Cipher;
import java.io.*;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Security;

/**
 * Asymmetric encryption & decryption routines with BouncyCastle JCE provider
 *
 * @author Gert Van Ham
 * @author hamgert@users.sourceforge.net
 * @author http://jcetaglib.sourceforge.net
 * @version $Id: Asymmetric.java,v 1.3 2004/04/15 07:28:24 hamgert Exp $
 */
public class Asymmetric {
    // buffersizes in bytes
    private static int BUFFERSIZE_TEXT = 64;

    /**
     * Encrypts text with a public RSA key (from a X.509 certificate)
     *
     * @param text the text to encrypt
     * @param encryptKey the public encryption key
     * @return the encrypted text in BASE64 format
     * @throws CryptoException for encryption errors
     */
    public static StringBuffer encrypt(StringBuffer text
                                       , PublicKey encryptKey)
            throws CryptoException {

        ByteArrayOutputStream bao = null;
        DataOutputStream dao = null;

        try {
            bao = new ByteArrayOutputStream();
            dao = new DataOutputStream(bao);

            // Encrypt
            encrypt(new ByteArrayInputStream(text.toString().getBytes()), dao, encryptKey, BUFFERSIZE_TEXT);

            return new StringBuffer(new String(Base64.encode(bao.toByteArray())));
        } catch (IOException ioe) {
            ioe.printStackTrace();
            throw new CryptoException(ioe.getMessage());
        } finally {
            if (dao != null) {
                // close outputstream
                try {
                    dao.close();
                } catch (IOException e) {
                    ;
                }
            }
        }
    }

    /**
     * Encrypts an inputstream with a public RSA key (from a X.509 certificate)
     * This result can only be decrypted with the corresponding private key
     *
     * @param is the inputstream to encrypt
     * @param daos returns ciphered outputstream
     * @param encryptKey the public encryption key
     * @throws IOException I/O errors
     * @throws CryptoException for all encryption errors
     **/
    public static void encrypt(InputStream is
                               , DataOutputStream daos
                               , PublicKey encryptKey
                               , int bufferlength)
            throws CryptoException, IOException {

        Cipher cipher = null;

        try {
            Security.addProvider(new BouncyCastleProvider());

            // create a cipher object: ("algorithm/mode/padding", provider)
            cipher = Cipher.getInstance("RSA/ECB/OAEPPadding", "BC");

            cipher.init(Cipher.ENCRYPT_MODE, encryptKey);

            byte[] buffer = new byte[bufferlength];
            int length = 0;
            while ((length = is.read(buffer)) != -1) {
                cipher.update(buffer, 0, length);
            }

            byte[] result = cipher.doFinal();
            daos.write(result);
        } catch (IOException ioe) {
            ioe.printStackTrace();
            throw new IOException(ioe.getMessage());
        } catch (Exception ex) {
            ex.printStackTrace();
            throw new CryptoException(ex.getMessage());
        }
    }

    /**
     * decrypts text with a private RSA key (from a X.509 certificate)
     *
     * @param text the text to decrypt
     * @param decryptKey the private key
     * @return the encrypted text in BASE64 format
     * @throws CryptoException for encryption errors
     */
    public static StringBuffer decrypt(StringBuffer text
                                       , PrivateKey decryptKey)
            throws CryptoException {

        ByteArrayOutputStream bao = null;
        DataOutputStream dao = null;

        try {
            bao = new ByteArrayOutputStream();
            dao = new DataOutputStream(bao);

            // Decrypt
            decrypt(new ByteArrayInputStream(Base64.decode(text.toString())), dao, decryptKey, BUFFERSIZE_TEXT);

            return new StringBuffer(new String(bao.toByteArray()));
        } catch (IOException ioe) {
            ioe.printStackTrace();
            throw new CryptoException(ioe.getMessage());
        } finally {
            if (dao != null) {
                // close outputstream
                try {
                    dao.close();
                } catch (IOException e) {
                    ;
                }
            }
        }
    }

    /**
     * Decrypts an inputstream, encrypted with an RSA public key (from X.509), with the
     * corresponding private key
     *
     * @param is the inputstream to decrypt
     * @param daos returns deciphered outputstream
     * @param decryptKey the private key
     * @throws IOException I/O errors
     * @throws CryptoException for all encryption errors
     **/
    public static void decrypt(InputStream is
                               , DataOutputStream daos
                               , PrivateKey decryptKey
                               , int bufferlength)
            throws CryptoException, IOException {

        Cipher cipher = null;

        try {
            Security.addProvider(new BouncyCastleProvider());

            // create a cipher object: ("algorithm/mode/padding", provider)
            cipher = Cipher.getInstance("RSA/ECB/OAEPPadding", "BC");

            cipher.init(Cipher.DECRYPT_MODE, decryptKey);

            byte[] buffer = new byte[bufferlength];
            int length = 0;
            while ((length = is.read(buffer)) != -1) {
                cipher.update(buffer, 0, length);
            }

            byte[] result = cipher.doFinal();
            daos.write(result);
        } catch (IOException ioe) {
            ioe.printStackTrace();
            throw new IOException(ioe.getMessage());
        } catch (Exception ex) {
            ex.printStackTrace();
            throw new CryptoException(ex.getMessage());
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品996| 中文字幕亚洲综合久久菠萝蜜| 成人毛片老司机大片| 男女激情视频一区| 亚洲成人先锋电影| 日韩国产一二三区| 久久精品国产色蜜蜜麻豆| 蜜臀久久99精品久久久久久9 | 国产精品欧美一级免费| 久久亚洲二区三区| 欧美国产1区2区| 亚洲欧洲日韩综合一区二区| 亚洲欧洲成人av每日更新| 国产精品每日更新在线播放网址| 中文字幕不卡三区| 亚洲欧美日韩在线| 亚洲妇女屁股眼交7| 日本女优在线视频一区二区| 蜜桃久久久久久久| 国产成人在线免费| 91色porny蝌蚪| 欧美日韩国产精品成人| 日韩视频一区二区三区| 欧美成人精精品一区二区频| 日韩欧美国产一二三区| 中文字幕免费在线观看视频一区| 国产网红主播福利一区二区| 亚洲欧美日韩国产综合| 日韩精品一二三四| 国产成人无遮挡在线视频| 99精品视频中文字幕| 欧美日韩在线不卡| 26uuu亚洲| 一区二区三区在线视频免费| 蜜臀av国产精品久久久久| 成人在线视频一区| 91精品一区二区三区久久久久久| 久久免费看少妇高潮| 亚洲综合999| 国产精品一区二区免费不卡 | 日韩一区二区三区免费看| 久久久久久麻豆| 一片黄亚洲嫩模| 国产精品一级二级三级| 欧美日韩高清一区二区不卡| 久久精品在这里| 天堂一区二区在线免费观看| 国产成人精品亚洲午夜麻豆| 欧美天堂一区二区三区| 久久精品欧美日韩精品| 亚洲国产sm捆绑调教视频| 国产91精品久久久久久久网曝门| 91福利视频网站| 国产精品视频一区二区三区不卡| 亚洲第一激情av| 91在线观看一区二区| 久久久久久麻豆| 男人的j进女人的j一区| 91在线观看美女| 国产精品久线在线观看| 精品一区二区三区在线播放视频| 欧美色涩在线第一页| 国产精品动漫网站| 国产ts人妖一区二区| 欧美一区二区三区日韩| 亚洲一区二区免费视频| 色综合视频一区二区三区高清| 久久男人中文字幕资源站| 老司机一区二区| 欧美老人xxxx18| 亚洲一级二级在线| 色综合 综合色| 成人免费在线视频观看| 成人精品视频一区| 久久精品综合网| 国产一区二区三区免费看| 日韩欧美在线一区二区三区| 日韩成人一区二区| 欧美一级精品大片| 天天色图综合网| 91精品国产一区二区三区香蕉| 亚洲国产综合色| 欧美日韩一区在线观看| 亚洲成国产人片在线观看| 欧美亚洲丝袜传媒另类| 一区二区久久久久久| 精品视频在线免费看| 香蕉加勒比综合久久| 欧美一级二级三级乱码| 麻豆一区二区99久久久久| 精品久久久久久久人人人人传媒| 久久99热99| 国产日韩欧美一区二区三区综合| 国产精一区二区三区| 国产欧美精品区一区二区三区 | 欧美日韩国产经典色站一区二区三区| 亚洲国产欧美日韩另类综合| 欧美群妇大交群中文字幕| 男男视频亚洲欧美| 26uuu成人网一区二区三区| 国产一区二区三区精品视频| 国产精品麻豆99久久久久久| 97精品视频在线观看自产线路二 | 欧美乱妇15p| 国产一区二区在线免费观看| 综合电影一区二区三区 | 韩国精品久久久| 国产精品免费免费| 欧美日韩精品一区二区三区四区 | www激情久久| av一区二区不卡| 亚洲成人7777| 国产网红主播福利一区二区| 欧美视频在线一区二区三区 | 成人免费视频视频在线观看免费| 亚洲免费在线播放| 欧美成人精品高清在线播放| 99久久免费精品| 日本不卡的三区四区五区| 中文字幕日韩一区二区| 在线综合+亚洲+欧美中文字幕| 国产成人亚洲综合色影视| 亚洲妇女屁股眼交7| 国产精品麻豆网站| 国产精品网站一区| 51精品久久久久久久蜜臀| 成人免费av网站| 久久电影国产免费久久电影| 亚洲蜜臀av乱码久久精品| 久久影音资源网| 欧美精品视频www在线观看| 岛国一区二区三区| 全国精品久久少妇| 亚洲精品伦理在线| 国产欧美精品一区| www国产精品av| 欧美区视频在线观看| 色综合天天狠狠| 成人精品视频一区二区三区| 精品一区二区三区免费观看| 亚洲国产成人av网| 日韩一区在线看| 国产精品第五页| 亚洲国产精品99久久久久久久久| 欧美一区二区视频免费观看| 一本大道久久a久久精品综合| 成人黄色小视频| 国产丶欧美丶日本不卡视频| 免费看精品久久片| 青青青伊人色综合久久| 午夜欧美大尺度福利影院在线看| 国产乱码精品一区二区三区五月婷| 午夜日韩在线电影| 亚洲国产一区二区三区| 亚洲一区二区四区蜜桃| 一级特黄大欧美久久久| 一区二区三区高清不卡| 亚洲成人精品影院| 午夜av电影一区| 日韩精品三区四区| 天天免费综合色| 日韩电影免费一区| 麻豆精品在线播放| 韩国中文字幕2020精品| 精品一区二区三区影院在线午夜 | 国产午夜精品久久久久久免费视 | 欧美日韩中文字幕一区| 欧美日韩国产高清一区| 51精品久久久久久久蜜臀| 日韩欧美中文字幕精品| 亚洲精品一区二区三区影院| 久久久久久久久久久久久夜| 中文字幕不卡的av| 亚洲一二三四久久| 亚洲国产精品视频| 美女脱光内衣内裤视频久久网站| 久久av资源网| 成人影视亚洲图片在线| 日本高清免费不卡视频| 欧美卡1卡2卡| 国产亚洲一区字幕| 亚洲视频在线一区观看| 午夜电影久久久| 国产一级精品在线| 91免费在线视频观看| 欧美三级视频在线| 久久久噜噜噜久久人人看| 亚洲女同一区二区| 久久99精品久久久久婷婷| 成人免费毛片高清视频| 欧美男生操女生| 国产欧美日本一区视频| 丝袜a∨在线一区二区三区不卡| 狠狠色伊人亚洲综合成人| 99精品久久只有精品| 欧美成人激情免费网| 一区二区三区在线影院| 国产激情视频一区二区在线观看 | 国产高清成人在线| 欧美理论在线播放|