大家好,欢迎来到IT知识分享网。
文章目录
- 前言
- 一、AES加解密工具类
- 二、AES加密简介(详细)
- 总结
前言
- 当涉及到数据的安全性和保密性时,加密是一种关键的技术手段。AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,被认为是目前最安全和最常用的加密算法之一。
一、AES加解密工具类
package org.springblade.modules.data.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; / * AES 加解密工具 * * @author kk */ public class AESUtil {
static Logger logger = LoggerFactory.getLogger(AESUtil.class); // 密钥 public static String key = "00B1E5452B9D453EC109D9BAF2"; private static String charset = "utf-8"; // 加密器类型:加密算法为AES,加密模式为CBC,补码方式为PKCS5Padding private static String transformation = "AES/ECB/PKCS5Padding"; // 算法类型:用于指定生成AES的密钥 private static String algorithm = "AES"; / * 加密 */ public static String encrypt(String content) {
return encrypt(content, key); } / * 解密 */ public static String decrypt(String content) {
return decrypt(content, key); } / * 加密 * * @param content 需要加密的内容 * @param key 加密密码 * @return */ public static String encrypt(String content, String key) {
try {
//构造密钥 SecretKeySpec skey = new SecretKeySpec(key.getBytes(), algorithm); //创建AES加密器 Cipher cipher = Cipher.getInstance(transformation); byte[] byteContent = content.getBytes(charset); //使用加密器的加密模式 cipher.init(Cipher.ENCRYPT_MODE, skey); // 加密 byte[] result = cipher.doFinal(byteContent); //使用BASE64对加密后的二进制数组进行编码 // return new String(new Base64().encode(result)); return Base64.getEncoder().encodeToString(result); } catch (Exception e) {
e.printStackTrace(); logger.info("{}", e); } return null; } / * AES解密 * * @param content 待解密内容 * @param key 解密密钥 * @return 解密之后 * @throws Exception */ public static String decrypt(String content, String key) {
try {
SecretKeySpec skey = new SecretKeySpec(key.getBytes(), algorithm); Cipher cipher = Cipher.getInstance(transformation); //解密时使用加密器的解密模式 cipher.init(Cipher.DECRYPT_MODE, skey);// 初始化 byte[] result = cipher.doFinal(Base64.getMimeDecoder().decode(content)); return new String(result); // 解密 } catch (Exception e) {
e.printStackTrace(); logger.info("{}", e); } return null; } public static void main(String[] args) {
// String s = "{\"username\":\"aqgc\",\"password\":\"V@\"}"; String s = "京A55645"; // String encryptResultStr = encrypt(s, "kcc1YgEJZ%NLc%kY"); String encryptResultStr = encrypt(s); // 加密 System.out.println("加密前:" + s); System.out.println("加密后:" + encryptResultStr); // 解密 System.out.println("解密后:" + decrypt(encryptResultStr)); String base64Encode = Base64.getEncoder().encodeToString(s.getBytes()); System.out.println("base64加密后:" + base64Encode); System.out.println("base64解密后:" + new String(Base64.getDecoder().decode(base64Encode))); } }
二、AES加密简介(详细)
总结
如果此篇文章有帮助到您, 希望打大佬们能
关注
、点赞
、收藏
、评论
支持一波,非常感谢大家!
如果有不对的地方请指正!!!
参考1
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/148414.html