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

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

?? macs.java

?? 一個(gè)java開發(fā)的非常全面的關(guān)于證書發(fā)放
?? JAVA
字號(hào):
/*
  Name:         Macs.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.Mac;
import java.io.*;
import java.security.Key;
import java.security.Security;

/**
 * Create MACs (Message Authentication Code) with the BouncyCastle JCE provider
 *
 * @author Gert Van Ham
 * @author hamgert@users.sourceforge.net
 * @author http://jcetaglib.sourceforge.net
 * @version $Id: Macs.java,v 1.3 2004/04/15 07:28:25 hamgert Exp $
 */
public class Macs {
    // buffersizes in bytes
    private static int BUFFERSIZE_TEXT = 64;
    private static int BUFFERSIZE_FILE = 8192;

    /**
     * Returns a MAC (Message Authentication Code) from a text
     *
     * @param text text to create MAC from
     * @param keyfile keyfile(name)
     * @param passphrase the passphrase for the keystore
     * @param algorithm encryption algorithm (e.g. "Rijndael")
     * @param macname MAC algorithm (e.g. IDEAMac)
     * @return the MAC in BASE64 format
     * @throws CryptoException for all encryption errors
     */
    public static StringBuffer generateMAC(StringBuffer text
                                           , String keyfile
                                           , StringBuffer passphrase
                                           , String algorithm
                                           , String macname)
            throws CryptoException {

        ByteArrayOutputStream bao = null;
        DataOutputStream dao = null;

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

            // Create MAC
            generateMAC(new ByteArrayInputStream(text.toString().getBytes()), dao, keyfile, passphrase, algorithm, macname, 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) {
                    ;
                }
            }
        }
    }

    /**
     * Returns a MAC (Message Authentication Code) from a file
     *
     * @param file file to create MAC from
     * @param keyfile keyfile(name)
     * @param passphrase the passphrase for the keystore
     * @param algorithm encryption algorithm (e.g. "Rijndael")
     * @param macname MAC algorithm (e.g. IDEAMac)
     * @return the MAC in BASE64 format
     * @throws CryptoException for encryption errors
     */
    public static StringBuffer generateFileMAC(String file
                                               , String keyfile
                                               , StringBuffer passphrase
                                               , String algorithm
                                               , String macname)
            throws CryptoException {

        FileInputStream fis = null;
        ByteArrayOutputStream bao = null;
        DataOutputStream dao = null;

        try {
            fis = new FileInputStream(file);
            bao = new ByteArrayOutputStream();
            dao = new DataOutputStream(bao);

            // generate mac
            generateMAC(fis, dao, keyfile, passphrase, algorithm, macname, BUFFERSIZE_FILE);

            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) {
                    ;
                }
            }
            if (fis != null) {
                // close outputstream
                try {
                    fis.close();
                } catch (IOException e) {
                    ;
                }
            }
        }
    }

    /**
     * Returns a MAC (Message Authentication Code) from any inputstream
     *
     * @param is any inputstream to generate HMAC from
     * @param daos returns MAC code string outputstream
     * @param keyfile keyfile(name)
     * @param passphrase the passphrase for the keystore
     * @param algorithm encryption algorithm (e.g. "Rijndael")
     * @param macname MAC algorithm (e.g. IDEAMac)
     * @throws IOException I/O errors
     * @throws CryptoException for all encryption errors
     **/
    public static void generateMAC(InputStream is
                                   , DataOutputStream daos
                                   , String keyfile
                                   , StringBuffer passphrase
                                   , String algorithm
                                   , String macname
                                   , int bufferlength)
            throws CryptoException, IOException {

        Key secretKey = null;
        Mac mac = null;

        try {
            // Add Bouncy Castle provider
            Security.addProvider(new BouncyCastleProvider());

            // read secret key
            secretKey = Keystore.loadKey(algorithm, keyfile, passphrase);

            mac = Mac.getInstance(macname, "BC");
            mac.init(secretKey);

            byte[] buffer = new byte[bufferlength];
            int length = 0;

            // Read bytes into buffer
            while ((length = is.read(buffer)) != -1) {
                mac.update(buffer, 0, length);
            }

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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美曰成人黄网| 成人免费av网站| 91精品国模一区二区三区| 亚洲国产日韩一区二区| 欧美精品777| 国内精品国产成人国产三级粉色| 日韩一区二区三区免费看| 麻豆成人久久精品二区三区红 | 久久电影网站中文字幕| 日韩欧美国产综合在线一区二区三区| 久久精品av麻豆的观看方式| 欧美极品aⅴ影院| 在线观看亚洲精品| 美女免费视频一区二区| 欧美激情在线一区二区| 欧美在线观看一二区| 麻豆精品在线播放| 国产精品麻豆一区二区| 欧美性感一区二区三区| 久久不见久久见中文字幕免费| 久久精子c满五个校花| 日本高清不卡在线观看| 久久电影国产免费久久电影| 国产精品三级av| 欧美人与z0zoxxxx视频| 国产**成人网毛片九色| 午夜国产精品影院在线观看| 久久久久久黄色| 欧美日韩中文字幕一区| 丁香激情综合五月| 蜜臀va亚洲va欧美va天堂| 国产精品国产三级国产普通话三级 | 成人午夜电影小说| 日韩精品免费专区| 国产精品理论在线观看| 欧美一区二区三区不卡| 91色在线porny| 久久99久久久久| 亚洲综合激情网| 日本一区二区三区久久久久久久久不| 欧美日韩久久久| 91免费小视频| 国产大陆亚洲精品国产| 亚洲第一成年网| 亚洲欧美一区二区三区极速播放| 欧美成人欧美edvon| 欧美日韩久久久一区| 成年人午夜久久久| 久久精品久久99精品久久| 一区二区三区自拍| 国产精品乱人伦一区二区| 精品国产电影一区二区| 欧美日韩国产系列| 91在线小视频| av激情综合网| 国产91精品免费| 国产一区二区免费视频| 麻豆91在线播放免费| 天堂午夜影视日韩欧美一区二区| 亚洲另类在线制服丝袜| 国产精品国产三级国产有无不卡| wwwwxxxxx欧美| 精品国产露脸精彩对白| 欧美一区二区三区免费大片| 欧美人与性动xxxx| 欧美夫妻性生活| 欧美三级韩国三级日本三斤| 欧美一a一片一级一片| 色噜噜夜夜夜综合网| 色一区在线观看| 色屁屁一区二区| 色国产精品一区在线观看| 91一区二区三区在线播放| 处破女av一区二区| 成人国产免费视频| 91首页免费视频| 色欧美片视频在线观看| 欧美在线视频全部完| 在线免费观看视频一区| 欧美色综合网站| 欧美肥妇free| 日韩一区二区三区免费观看| 欧美xxxxx裸体时装秀| 久久蜜桃一区二区| 中文av一区特黄| 一区二区三区四区不卡在线| 亚洲精品国产a| 日韩成人一级片| 国产精品一区在线| 91影院在线观看| 欧美日韩精品专区| 精品国产免费视频| 国产精品女人毛片| 亚洲综合在线免费观看| 日韩中文欧美在线| 韩国三级电影一区二区| 成人黄色免费短视频| 欧洲精品中文字幕| 欧美成人性福生活免费看| 国产欧美一区二区精品久导航| 中文字幕久久午夜不卡| 亚洲综合一二区| 狠狠色丁香婷婷综合| aaa欧美日韩| 69久久99精品久久久久婷婷 | 欧美精品三级在线观看| 欧美va亚洲va| 亚洲免费观看高清完整版在线观看熊 | 国产乱码精品一区二区三区五月婷| 成人午夜视频免费看| 欧美三级三级三级| 久久精品男人的天堂| 一区二区三区色| 国产在线精品视频| 欧美亚洲国产bt| 国产午夜亚洲精品不卡| 午夜精品福利久久久| 成人永久免费视频| 日韩欧美成人一区二区| 自拍av一区二区三区| 美女一区二区三区| 91视视频在线观看入口直接观看www | 国产成人精品亚洲午夜麻豆| 欧美性猛交一区二区三区精品| 精品久久久久久久一区二区蜜臀| 国产精品盗摄一区二区三区| 奇米精品一区二区三区在线观看一| 国产成人精品亚洲午夜麻豆| 欧美一区二区在线看| 亚洲欧美中日韩| 国产精品香蕉一区二区三区| 6080国产精品一区二区| 日韩美女啊v在线免费观看| 精品一二线国产| 欧美日韩亚洲丝袜制服| 自拍视频在线观看一区二区| 国产一区二区美女| 欧美大片日本大片免费观看| 亚洲高清免费视频| 色偷偷成人一区二区三区91| 国产欧美久久久精品影院| 日韩1区2区日韩1区2区| 欧美影院一区二区三区| 自拍视频在线观看一区二区| 国产成人鲁色资源国产91色综| 欧美一区二区网站| 亚洲第一久久影院| 欧洲国内综合视频| 亚洲私人黄色宅男| 不卡av电影在线播放| 国产精品无遮挡| 国产91精品久久久久久久网曝门| 日韩精品一区二区三区swag | 国产精品中文字幕一区二区三区| 欧美日韩国产中文| 亚洲国产精品久久不卡毛片 | 亚洲精品中文在线| 99精品视频一区| 国产精品沙发午睡系列990531| 国产成人免费高清| 国产精品嫩草影院av蜜臀| 波多野结衣中文字幕一区二区三区 | 亚洲精品高清在线观看| 99久久777色| 中文字幕亚洲区| 色综合久久88色综合天天免费| 亚洲人一二三区| 色狠狠一区二区| 尤物视频一区二区| 欧美日韩在线直播| 欧美aaa在线| 日韩欧美亚洲另类制服综合在线| 免费日本视频一区| 久久男人中文字幕资源站| 国产a级毛片一区| 国产精品电影一区二区| 日本伦理一区二区| 亚洲国产成人高清精品| 欧美一区二区三区日韩| 精品一区二区免费在线观看| 精品国产一区二区精华| 国产黄色91视频| 亚洲视频在线观看三级| 欧美日韩午夜在线| 另类小说综合欧美亚洲| 国产欧美1区2区3区| 91免费在线播放| 秋霞国产午夜精品免费视频| 久久久一区二区三区捆绑**| 成人av网址在线观看| 亚洲伊人伊色伊影伊综合网| 欧美tk—视频vk| 97精品久久久午夜一区二区三区 | 91精品国产91久久久久久一区二区 | 欧美一区二区女人| 国内精品在线播放| 亚洲色图一区二区| 91精品国产综合久久福利软件| 国产成人自拍高清视频在线免费播放| 亚洲欧美在线另类|