全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java实现的AES秘钥生成算法示例

本文实例讲述了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./password/my_password_safe

高强度密码生成器:
http://tools./password/CreateStrongPassword

迅雷、快车、旋风URL加密/解密工具:
http://tools./password/urlrethunder

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

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

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

希望本文所述对大家java程序设计有所帮助。


# java  # AES  # 秘钥  # 生成算法  # java实现AES可逆加密算法  # Java原生方法实现 AES 算法示例  # Java实现的对称加密算法AES定义与用法详解  # Java实现AES算法的实例代码  # 长度为  # 加密工具  # 只需要  # 随机数  # 还可以  # 感兴趣  # 给大家  # 转化为  # 所述  # 程序设计  # 高强度  # 加密解密  # 讲述了  # sk  # getKeyByPass  # getKey  # kg  # init  # getInstance  # generateKey 


相关文章: 沈阳制作网站公司排名,沈阳装饰协会官方网站?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  行程制作网站有哪些,第三方机票电子行程单怎么开?  济南网站制作的价格,历城一职专官方网站?  如何在阿里云香港服务器快速搭建网站?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  北京网站制作的公司有哪些,北京白云观官方网站?  如何在万网主机上快速搭建网站?  微课制作网站有哪些,微课网怎么进?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  大型企业网站制作流程,做网站需要注册公司吗?  小型网站制作HTML,*游戏网站怎么搭建?  ui设计制作网站有哪些,手机UI设计网址吗?  如何使用Golang安装API文档生成工具_快速生成接口文档  建站之星如何助力企业快速打造五合一网站?  如何通过西部建站助手安装IIS服务器?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  怀化网站制作公司,怀化新生儿上户网上办理流程?  网站图片在线制作软件,怎么在图片上做链接?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  视频网站制作教程,怎么样制作优酷网的小视频?  建站之星云端配置指南:模板选择与SEO优化一键生成  如何彻底卸载建站之星软件?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  建站主机服务器选购指南:轻量应用与VPS配置解析  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何选择适合PHP云建站的开源框架?  宝塔建站助手安装配置与建站模板使用全流程解析  网站制作公司,橙子建站是合法的吗?  建站主机是否属于云主机类型?  图册素材网站设计制作软件,图册的导出方式有几种?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何在云指建站中生成FTP站点?  如何在IIS中新建站点并配置端口与物理路径?  5种Android数据存储方式汇总  韩国服务器如何优化跨境访问实现高效连接?  如何在万网ECS上快速搭建专属网站?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何在服务器上配置二级域名建站?  建站之星安装后如何配置SEO及设计样式?  ,制作一个手机app网站要多少钱?  制作证书网站有哪些,全国城建培训中心证书查询官网?  建站之星如何配置系统实现高效建站?  已有域名能否直接搭建网站?  C#如何使用XPathNavigator高效查询XML 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。