欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

aes加密

package com.zyhao.openec.util;

創(chuàng)新互聯(lián)建站服務項目包括新賓網(wǎng)站建設、新賓網(wǎng)站制作、新賓網(wǎng)頁制作以及新賓網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,新賓網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到新賓省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.security.InvalidKeyException;

import java.security.NoSuchAlgorithmException;

import java.security.SecureRandom;

import javax.crypto.BadPaddingException;

import javax.crypto.Cipher;

import javax.crypto.IllegalBlockSizeException;

import javax.crypto.KeyGenerator;

import javax.crypto.NoSuchPaddingException;

import javax.crypto.SecretKey;

import javax.crypto.spec.SecretKeySpec;

public class MainTest {

    //AES:高級加密標準,新一代標準,加密速度更快,安全性更高(不用說優(yōu)先選擇)

public static void main(String[] args) throws Exception {

String aesKey = getKey();

System.out.println(aesKey);

//        //加密  

String oriString = "我是加密的原文:hello world|hi!";

        byte[] oriText = oriString.getBytes(); 

        byte[] be = getAESEncode(hexStringToBytes(aesKey),oriText); 

        String encodeString = byteToHexString(be);

        System.out.println(encodeString);

        //解密  

        byte[] encodeByte=hexStringToBytes(encodeString);

        byte[] bd = getAESDecode(hexStringToBytes(aesKey),encodeByte); 

        System.out.println(new String(bd)); 

    }  

  

    /** 

     * AES生成密鑰 

     * 自動生成AES128位密鑰 

     * 傳入保存密鑰文件路徑 

     * filePath 表示文件存儲路徑加文件名;例如d:\aes.txt 

     * @throws NoSuchAlgorithmException  

     * @throws IOException  

     */  

    public static byte[] getAutoCreateAESKey() throws NoSuchAlgorithmException, IOException{  

        KeyGenerator kg = KeyGenerator.getInstance("AES");  

        kg.init(128);//要生成多少位,只需要修改這里即可128, 192或256  

        SecretKey sk = kg.generateKey();  

        byte[] b = sk.getEncoded();  

        return b;

    }  

      

    /** 

     * 加密 

     * 使用對稱密鑰進行加密 

     * keyFilePath 密鑰存放路徑 

     * text 要加密的字節(jié)數(shù)組 

     * 加密后返回一個字節(jié)數(shù)組 

     * @throws IOException  

     * @throws NoSuchPaddingException  

     * @throws NoSuchAlgorithmException  

     * @throws InvalidKeyException  

     * @throws BadPaddingException  

     * @throws IllegalBlockSizeException  

     */  

    public static byte[] getAESEncode(byte[] key,byte[] text) throws IOException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException{  

        SecretKeySpec sKeySpec = new SecretKeySpec(key, "AES");  

        Cipher cipher = Cipher.getInstance("AES");  

        cipher.init(Cipher.ENCRYPT_MODE, sKeySpec);  

        byte[] bjiamihou = cipher.doFinal(text);  

        return bjiamihou;  

    }  

      

    /** 

     * 解密 

     * 使用對稱密鑰進行解密 

     * keyFilePath 密鑰存放路徑 

     * text 要解密的字節(jié)數(shù)組 

     * 解密后返回一個字節(jié)數(shù)組 

     * @throws IOException  

     * @throws NoSuchPaddingException  

     * @throws NoSuchAlgorithmException  

     * @throws InvalidKeyException  

     * @throws BadPaddingException  

     * @throws IllegalBlockSizeException  

     */  

    public static byte[] getAESDecode(byte[] key,byte[] text) throws IOException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException{  

        SecretKeySpec sKeySpec = new SecretKeySpec(key, "AES");  

        Cipher cipher = Cipher.getInstance("AES");  

        cipher.init(Cipher.DECRYPT_MODE, sKeySpec);  

        byte[] bjiemihou = cipher.doFinal(text);  

        return bjiemihou;  

    } 

  /**

   * 隨機生成秘鑰

   */

    public static String getKey() {

   try {

   KeyGenerator kg = KeyGenerator.getInstance("AES");

   kg.init(128);

   //要生成多少位,只需要修改這里即可128, 192或256

   SecretKey sk = kg.generateKey();

   byte[] b = sk.getEncoded();

   String s = byteToHexString(b);

   System.out.println(s);

   System.out.println("十六進制密鑰長度為"+s.length());

   System.out.println("二進制密鑰的長度為"+s.length()*4);

   return s;

}catch (NoSuchAlgorithmException e) {

   e.printStackTrace();

   System.out.println("沒有此算法。");

   }

        return null;

    }

//        /**

//     * 使用指定的字符串生成秘鑰

//     */

//    public static void getKeyByPass() {

//     //生成秘鑰

//     String password="testkey";

//     try {

//        KeyGenerator kg = KeyGenerator.getInstance("AES");

//        // kg.init(128);//要生成多少位,只需要修改這里即可128, 192或256

//        //SecureRandom是生成安全隨機數(shù)序列,password.getBytes()是種子,只要種子相同,序列就一樣,所以生成的秘鑰就一樣。

//        kg.init(128, new SecureRandom(password.getBytes()));

//        SecretKey sk = kg.generateKey();

//        byte[] b = sk.getEncoded();

//        String s = byteToHexString(b);

//        System.out.println(s);

//        System.out.println("十六進制密鑰長度為"+s.length());

//        System.out.println("二進制密鑰的長度為"+s.length()*4);

//     }catch (NoSuchAlgorithmException e) {

//        e.printStackTrace();

//        System.out.println("沒有此算法。");

//        }

//     }

/**

* byte數(shù)組轉(zhuǎn)化為16進制字符串

* @param bytes

* @return

*/

    public static String byteToHexString(byte[] bytes) {

   StringBuffer sb = new StringBuffer();

   for (int i = 0; i < bytes.length; i++) {

       String strHex=Integer.toHexString(bytes[i]);

       if(strHex.length() > 3) {

           sb.append(strHex.substring(6));

       } else {

           if(strHex.length() < 2) {

               sb.append("0" + strHex);

           } else {

               sb.append(strHex);

           }

       }

   }

   return sb.toString();

}

    /**  

     * Convert hex string to byte[]  

     * @param hexString the hex string  

     * @return byte[]  

     */  

    public static byte[] hexStringToBytes(String hexString) {   

        if (hexString == null || hexString.equals("")) {   

            return null;   

        }   

        hexString = hexString.toUpperCase();   

        int length = hexString.length() / 2;   

        char[] hexChars = hexString.toCharArray();   

        byte[] d = new byte[length];   

        for (int i = 0; i < length; i++) {   

            int pos = i * 2;   

            d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));   

        }   

        return d;   

    } 

    /**  

     * Convert char to byte  

     * @param c char  

     * @return byte  

     */  

     private static byte charToByte(char c) {   

        return (byte) "0123456789ABCDEF".indexOf(c);   

    }

}

網(wǎng)頁標題:aes加密
文章URL:http://aaarwkj.com/article32/jjpepc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、網(wǎng)站導航搜索引擎優(yōu)化、面包屑導航、定制開發(fā)、網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
一卡二卡三卡四卡日韩| 亚洲欧美国产成人在线| 91久久高清国语自产拍| 日本区一区二区三啪啪| 人妻一区二区三区中文字幕| 国产欧美日韩一二三四| 欧美日韩在线亚洲二区综二| 午夜在线观看欧美福利| 欧美黄色影院在线观看| 亚洲国产女人精品久久久| 亚洲av成人精品日韩一区麻豆 | 成人性生交大片免费看中文 | 日本不卡不二三区在线看| 国产一区国产二区中文字幕| 91观看免费完整版高清| 久久五十路初次拍五十路| 欧美中文字幕内射合集| 激情小说婷婷亚洲综合| 在线一区二区三区高清视频| 97资源在线中文一区| av永久天堂一区二区三区| 一区二区三区都市激情| 亚洲精品中文字幕乱码三区91| 亚洲男人天堂av电影| 免费av中文字幕电影| 日本欧美国产污黄在线观看 | av剧情在线观看免费| 日韩黄色一级免费在线观看 | 亚洲国产精品久久久精品 | 日本亚洲欧洲一区二区| 日韩欧美精品视频一区| 亚洲精品国产av成人| 亚洲av天堂免费在线观看 | 久久精品国产亚洲av高清不卡| 欧美日韩在线观看黄色| 日韩三级一区二区三区| 日本在线精品在线观看| 视频一区视频二区三区| 美女丝袜诱惑国产91| 黄色18禁网站在线看| 国产日韩欧美一区二区三区四区|