Java实现的对称加密算法AES定义与用法详解

时间:2022-12-02 12:06:14

本文实例讲述了java实现的对称加密算法aes定义与用法。分享给大家供大家参考,具体如下:

一 简介

1、aes是目前使用最多的对称加密算法。
2、aes的优势之一是至今尚未被破解。
3、aes通常用于移动通信系统加密以及基于ssh协议(ssh client、secruecrt)的软件。

二 特点

1、高级的
2、des替代者

三 aes的参数说明

Java实现的对称加密算法AES定义与用法详解

四 代码实现

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.imooc.security.aes;
import java.security.key;
import javax.crypto.cipher;
import javax.crypto.keygenerator;
import javax.crypto.secretkey;
import javax.crypto.spec.secretkeyspec;
import org.apache.commons.codec.binary.base64;
public class imoocaes {
 private static string src = "cakin24 security aes";
 public static void main(string[] args) {
  jdkaes();
 }
 public static void jdkaes() {
  try {
   //生成key
   keygenerator keygenerator = keygenerator.getinstance("aes");
   keygenerator.init(128);
   secretkey secretkey = keygenerator.generatekey();
   byte[] keybytes = secretkey.getencoded();
   //key转换
   key key = new secretkeyspec(keybytes, "aes");
   //加密
   cipher cipher = cipher.getinstance("aes/ecb/pkcs5padding");
   cipher.init(cipher.encrypt_mode, key);
   byte[] result = cipher.dofinal(src.getbytes());
   system.out.println("jdk aes encrypt : " + base64.encodebase64string(result));
   //解密
   cipher.init(cipher.decrypt_mode, key);
   result = cipher.dofinal(result);
   system.out.println("jdk aes desrypt : " + new string(result));
  } catch (exception e) {
   e.printstacktrace();
  }
 }
}

五 运行效果

jdk aes encrypt : unoek3j7fjhb2cxilzluyyciq2nwayztkfednscjh5g=
jdk aes desrypt : cakin24 security aes

六 应用场景

Java实现的对称加密算法AES定义与用法详解

注:这里引入了org.apache.commons.codec.binary.base64包。

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

原文链接:https://blog.csdn.net/chengqiuming/article/details/78746087