国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java實現的AES秘鑰生成算法示例

2019-11-26 13:18:58
字體:
來源:轉載
供稿:網友

本文實例講述了java實現的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();  }  /**  * 隨機生成秘鑰  */  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("十六進制密鑰長度為"+s.length());      System.out.println("二進制密鑰的長度為"+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是生成安全隨機數序列,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數組轉化為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();  }}

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

密碼安全性在線檢測:
http://tools.VeVB.COm/password/my_password_safe

高強度密碼生成器:
http://tools.VeVB.COm/password/CreateStrongPassword

迅雷、快車、旋風URL加密/解密工具:
http://tools.VeVB.COm/password/urlrethunder

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

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

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

希望本文所述對大家java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 重庆市| 曲周县| 阿克苏市| 大姚县| 西林县| 甘孜| 舟曲县| 黑山县| 隆安县| 尼勒克县| 涞水县| 三河市| 巴彦县| 台北市| 新兴县| 沂水县| 班玛县| 茶陵县| 牙克石市| 淮南市| 台江县| 临海市| 平远县| 图木舒克市| 新田县| 和政县| 白水县| 天台县| 武乡县| 精河县| 新兴县| 余干县| 翼城县| 大竹县| 沾益县| 无为县| 武鸣县| 松江区| 锡林郭勒盟| 禄丰县| 浦江县|