亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)制密鑰長度為"+s.length());
      System.out.println("二進(jìn)制密鑰的長度為"+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)制密鑰長度為"+s.length());
      System.out.println("二進(jìn)制密鑰的長度為"+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)于加密解密感興趣的朋友還可以參考本站在線工具:

密碼安全性在線檢測:
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

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

相關(guān)文章

  • Java引用傳遞和值傳遞棧內(nèi)存與堆內(nèi)存的指向操作

    Java引用傳遞和值傳遞棧內(nèi)存與堆內(nèi)存的指向操作

    這篇文章主要介紹了Java引用傳遞和值傳遞棧內(nèi)存與堆內(nèi)存的指向操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Intellij IDEA導(dǎo)入JAVA項(xiàng)目并啟動(圖文教程)

    Intellij IDEA導(dǎo)入JAVA項(xiàng)目并啟動(圖文教程)

    這篇文章主要介紹了Intellij IDEA導(dǎo)入JAVA項(xiàng)目并啟動,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java之HashMap.values()轉(zhuǎn)List時(shí)的錯誤和正確演示

    Java之HashMap.values()轉(zhuǎn)List時(shí)的錯誤和正確演示

    這篇文章主要介紹了Java之HashMap.values()轉(zhuǎn)List時(shí)的錯誤和正確演示,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解Java中的Vector

    詳解Java中的Vector

    Vector 可實(shí)現(xiàn)自動增長的對象數(shù)組。本文通過實(shí)例代碼給大家詳細(xì)介紹java中的vector,感興趣的朋友一起看看吧
    2017-10-10
  • Java實(shí)現(xiàn)LeetCode(組合總和)

    Java實(shí)現(xiàn)LeetCode(組合總和)

    這篇文章主要介紹了Java實(shí)現(xiàn)LeetCode(組合總數(shù)),本文通過使用java實(shí)現(xiàn)leetcode的組合總數(shù)題目和實(shí)現(xiàn)思路分析,需要的朋友可以參考下
    2021-06-06
  • spring mvc配置bootstrap教程

    spring mvc配置bootstrap教程

    這篇文章主要為大家詳細(xì)介紹了spring mvc配置bootstrap,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Java實(shí)現(xiàn)2048小游戲(可直接運(yùn)行)

    Java實(shí)現(xiàn)2048小游戲(可直接運(yùn)行)

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)2048小游戲的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • java封裝實(shí)例用法講解

    java封裝實(shí)例用法講解

    在本篇文章里小編給大家整理了一篇關(guān)于java封裝實(shí)例用法及相關(guān)知識點(diǎn),有興趣的朋友們可以參考下。
    2021-01-01
  • 詳解Java中方法重寫與重載的區(qū)別(面試高頻問點(diǎn))

    詳解Java中方法重寫與重載的區(qū)別(面試高頻問點(diǎn))

    這篇文章主要介紹了Java中方法重寫與重載的區(qū)別(面試高頻問點(diǎn)),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Java 命名規(guī)范(非常全面)

    Java 命名規(guī)范(非常全面)

    在本文中,將從大到小,從外到內(nèi),總結(jié)Java編程中的命名規(guī)范。文中將會涉及到日常工作中常見的命名示例,如包命名,類命名,接口命名,方法命名,變量命名,常類命名,抽象類命名,異常類命名以及擴(kuò)展類命名等。
    2021-09-09

最新評論