原视频地址
Imooc_JAVA实现对称加密3-1 JAVA-对称加密算法AES
package AES; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Hex; public class AES { private static String src = "imooc security aes"; public static void main(String[] args) { jdkAES(); }//main方法结束 private static void jdkAES(){ try { //生成KEY KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); //初始化keyGenerator // keygenerator.init(168); // SecureRandom()生成默认长度的类 keyGenerator.init(new SecureRandom()); //调用方法生成密匙secretKey 生成秘钥 SecretKey secretKey = keyGenerator.generateKey(); //密钥进行getEncoded()获取比特编码byte[] byte[] keyBytes = secretKey.getEncoded(); //生成KEY 进行KEY的转换 //SecretKeySpec(KEY, 加密的方式) Key key = new SecretKeySpec(keyBytes, "AES"); //加密 //getInstance("加解密算法/工作模式/填充方式") Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); //cipher.init(opmode, certificate); 第一个参数为模式 第二个参数为转换后的KEY // Cipher.ENCRYPT_MODE加密模式 转换后的KEY:convertsecretKey cipher.init(Cipher.ENCRYPT_MODE, key); //doFinal(input); input即使要被加密的内容 byte[] result = cipher.doFinal(src.getBytes()); System.out.println("jdk AES encrypt:"+Base64.encodeBase64String(result)); //解密前需要重新初始化 //cipher.init(opmode, certificate); 第一个参数为模式 第二个参数为转换后的KEY // Cipher.DECRYPT_MODE解密模式 转换后的KEY:convertsecretKey cipher.init(Cipher.DECRYPT_MODE, key); result = cipher.doFinal(result); System.out.println("jdk AES decrypt:"+new String(result)); } catch (Exception e) { e.printStackTrace(); } }//jdkAES方法 public static void bcAES(){ //作业 }//bcAES方法 }//AES类结束