本文实例讲述了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小时内与您取得联系。