最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)的AES秘鑰生成算法示例

 更新時(shí)間:2017年01月05日 11:58:06   作者:QH_JAVA  
這篇文章主要介紹了java實(shí)現(xiàn)的AES秘鑰生成算法,結(jié)合實(shí)例形式分析了AES秘鑰生成算法原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了java實(shí)現(xiàn)的AES秘鑰生成算法。分享給大家供大家參考,具體如下:

import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class Test {
  public static void main(String[] args) {
    getKey();
    getKeyByPass();
  }
  /**
  * 隨機(jī)生成秘鑰
  */
  public static void 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("十六進(jìn)制密鑰長(zhǎng)度為"+s.length());
      System.out.println("二進(jìn)制密鑰的長(zhǎng)度為"+s.length()*4);
    }
    catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
      System.out.println("沒有此算法。");
    }
  }
  /**
  * 使用指定的字符串生成秘鑰
  */
  public static void getKeyByPass() {
    //生成秘鑰
    String password="testkey";
    try {
      KeyGenerator kg = KeyGenerator.getInstance("AES");
      // kg.init(128);//要生成多少位,只需要修改這里即可128, 192或256
      //SecureRandom是生成安全隨機(jī)數(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("十六進(jìn)制密鑰長(zhǎng)度為"+s.length());
      System.out.println("二進(jìn)制密鑰的長(zhǎng)度為"+s.length()*4);
    }
    catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
      System.out.println("沒有此算法。");
    }
  }
  /**
  * byte數(shù)組轉(zhuǎn)化為16進(jìn)制字符串
  * @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();
  }
}

PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

密碼安全性在線檢測(cè):
http://tools.jb51.net/password/my_password_safe

高強(qiáng)度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword

迅雷、快車、旋風(fēng)URL加密/解密工具:
http://tools.jb51.net/password/urlrethunder

在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

绥阳县| 确山县| 新乐市| 甘洛县| 林州市| 清流县| 德兴市| 城口县| 鄂托克旗| 新绛县| 绥芬河市| 安乡县| 北宁市| 镇巴县| 板桥市| 吴旗县| 察雅县| 土默特左旗| 威信县| 连州市| 建平县| 永川市| 瑞金市| 英吉沙县| 罗江县| 乌兰察布市| 南部县| 南皮县| 吉水县| 九龙县| 马边| 开化县| 斗六市| 鞍山市| 吉安市| 临澧县| 麟游县| 兴安盟| 浦城县| 浦东新区| 南雄市|