iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java使用AES加密和解密的实例详解
  • 347
分享到

Java使用AES加密和解密的实例详解

javaaes加密 2023-05-31 10:05:29 347人浏览 薄情痞子
摘要

Java使用AES加密和解密的实例详解前言:AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了1

Java使用AES加密和解密的实例详解

前言:

AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了15个候选算法。1999年3月完成了第二轮AES2的分析、测试。2000年10月2日美国政府正式宣布选中比利时密码学家Joan Daemen 和 Vincent Rijmen 提出的一种密码算法RIJNDAEL 作为 AES.   在应用方面,尽管DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES。但是DES迟早要被AES代替。流密码体制较之分组密码在理论上成熟且安全,但未被列入下一代加密标准。   

AES加密数据块和密钥长度可以是128比特、192比特、256比特中的任意一个。

AES加密有很多轮的重复和变换。大致步骤如下:

密钥扩展(KeyExpansion),
2、初始轮(Initial Round),
3、重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,
4、最终轮(Final Round),最终轮没有MixColumns。

AES是一种对称的加密算法,可基于相同的密钥进行加密和解密。Java采用AES算法进行加解密的逻辑大致如下:

生成/获取密钥

加/解密 

1.1生成密钥

密钥的生成是通过KeyGenerator来生成的。通过获取一个KeyGenerator实例,然后调用其generateKey()方法即可生成一个SecreTKEy对象。大致逻辑一般如下:

private SecretKey geneKey() throws Exception {   //获取一个密钥生成器实例   KeyGenerator keyGenerator = KeyGenerator.getInstance(ALGoRITHM);   SecureRandom random = new SecureRandom();   random.setSeed("123456".getBytes());//设置加密用的种子,密钥   keyGenerator.init(random);   SecretKey secretKey = keyGenerator.generateKey();   return secretKey; } 

--结束END--

本文标题: Java使用AES加密和解密的实例详解

本文链接: https://www.lsjlt.com/news/224896.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作