对称加密算法AES

    xiaoxiao2021-03-25  95

    package com.imooc.security.aes; import java.security.Key; import java.util.Objects; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * 对称加密算法 * @author Bingo_Ge * */ public class ImoocAES { private static String src = "imooc 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 byte数组 // KeyGenerator keyGenerator1 = KeyGenerator.getInstance("AES"); // keyGenerator1.init(128); //初始化长度 // SecretKey secretKey1 = keyGenerator1.generateKey(); // byte[] keyBytes1 = secretKey1.getEncoded(); //得到key byte数组 // // System.out.println(Objects.equals(keyBytes, keyBytes1)); //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 encrpt:" + Base64.encodeBase64String(result)); cipher.init(cipher.DECRYPT_MODE, key); //此处为解密模式,还是需要用到原来的key result = cipher.doFinal(result); //得到解密后结果数组 System.out.println("jdk aes decrypt:" + new String(result)); } catch (Exception e) { e.printStackTrace(); } } }
    转载请注明原文地址: https://ju.6miu.com/read-21847.html

    最新回复(0)