转自: https://www.jb51.net/article/102128.htm

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或256SecretKey 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();}
}

java实现AES密钥生成相关推荐

  1. java jce-KeyGenerator(密钥生成)

    java jce-KeyGenerator(密钥生成) 在开发时,总要涉及到数据的加密与解密,之前一直有些糊涂,最近看了 jce.jar的源码,来整理记录一下 接着上篇 java jce-Cipher ...

  2. java aes密钥生成_如何在Java(Android)中生成与.Net中相同的AES密钥?

    我需要从.Net WebService提供的salt和密码生成 Java( Android)中的AES密钥.我需要使用与.net生成的密钥相同的密钥和相同的密码和盐(使用Rfc2898DeriveBy ...

  3. 密钥生成工具类:RSA2 256位 加解密工具类 RsaUtils

    import java.io.IOException; import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; i ...

  4. rsa1024 java 128 162_关于Java:RSA解密后,无效的AES密钥大小

    我正在尝试解密已使用AES-128对称加密和随后的RSA-1024非对称加密对生成的对称密钥进行加密的消息. 我收到加密的AES密钥和加密的消息,从pfx文件中提取私钥,然后继续对对称密钥进行解密. ...

  5. Java使用AES算法并指定密钥种子实现加密解密

    Java使用AES指定密钥实现加密解密 一.生成密钥种子 二.使用生成的密钥种子加密 三.使用生成的密钥种子解密 四.AES完整加密解密代码工具类 一.生成密钥种子 import org.apache ...

  6. aes子密钥生成c语言_HBase配置AES加密

    特别说明:该专栏文章均来源自微信公众号<大数据实战演练>,欢迎关注! 版本: HDP:3.0.1.0 HBase:2.0.0 一.前言 为了避免第三方非法访问我们的重要数据,我们可以给HB ...

  7. aes子密钥生成c语言_一种基于流密码算法的子密钥生成方法与流程

    本发明涉及一种用于分组加解密算法的子密钥的生成方法. 背景技术: 随着信息技术的发展,信息安全性的问题却愈来愈显得突出,保证信息安全的一个重要技术就是密码学.密码学在信息安全技术中扮演着基础的角色,是 ...

  8. android怎样生成固定的aes密钥,关于android:如何更改AES 128的密钥数量

    本问题已经有最佳答案,请猛点这里访问. 我找到了一个android加密的源..它使用的是aes 128位加密..但是密钥的数量固定为16个字符..有人能告诉我如何根据我们的意愿更改数字密钥..我不想限 ...

  9. java prime256v1_JWT 签名算法 HS256、RS256 及 ES256 及密钥生成

    个人笔记,不保证正确. 签名算法 介绍具体的 JWT 签名算法前,先解释一下签名.摘要/指纹.加密这几个名词的含义: 数字签名(Digital Signature):就和我们日常办理各种手续时需要在文 ...

  10. Java使用AES加密解密

    AES加密机制: 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准. 这个标准用来替代原先的 ...

最新文章

  1. redis 双写一致性
  2. 在 Spring Boot 中,如何干掉 if else!
  3. Objective-C市场占有率排名升至第4位
  4. Hadoop的HA机制原理解析,与HA高可用集群环境搭建
  5. 关于使用data()获取自定义属性出现undefined的说明
  6. [转] 设计模式的六大设计原则
  7. Docker容器基本使用
  8. 【LeetCode笔记】53. 最大子序和(Java、动态规划)
  9. android中打开pdf,在Android应用程序中打开PDF
  10. android全局livedata,Android 使用ViewModel,LiveData高效、简
  11. 学会这20条,做个聪明的人
  12. mysql学习day03——02
  13. 读取城市坐标,计算任意两个城市之间的距离。
  14. java-jsoup爬虫
  15. WIN10开启Hyper-V虚拟化功能
  16. code review流程规范
  17. 你知道吗?一个比房地产更大的超级泡沫正风靡全国!
  18. java安装及设置eclipse
  19. window10无法访问局域网共享文件夹
  20. 原来,这就是爱情的模样!

热门文章

  1. 基于DDS的信号源设计
  2. sqlite数据库可视化工具—— DB.Browser安装说明
  3. 《白帽子讲Web安全》| 学习笔记之访问控制
  4. 计算机系统修复命令提示符,win10怎么用命令提示符修复电脑 用命令提示符修复win10电脑的方法...
  5. Ubuntu解压、压缩zip、tar、tar.gz、tar.bz2文件
  6. php manual 下载,PHP - Manual手册 - Download下载
  7. java jar 是什么_java中的jar文件是什么
  8. 卓岚APP远程采集正泰单相电子式电能表 ZLAN5144J的应用分享
  9. 74cms v5.0.1漏洞
  10. c语言的异步回调函数,C语言函数的回调函数