zoukankan      html  css  js  c++  java
  • JAVA——AES加密解密

    import javax.crypto.*;
    import java.nio.charset.Charset;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
    import java.security.SecureRandom;
    
    public class AESUtil {
        static final String ALGORITHM = "AES";
        static final Charset charset = Charset.forName("UTF-8");
    
        /**
         * 生成密钥
         *
         * @return 密钥
         */
        public static SecretKey generateKey() throws NoSuchAlgorithmException {
            KeyGenerator keyGenerator = KeyGenerator.getInstance(ALGORITHM);
            SecureRandom secureRandom = new SecureRandom();
            keyGenerator.init(secureRandom);
            SecretKey secretKey = keyGenerator.generateKey();
            return secretKey;
        }
    
        /**
         * 加密
         *
         * @param 待加密内容
         * @param 密钥
         * @return 加密后比特数组
         */
        public static byte[] encrypt(String content, SecretKey secretKey) throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException {
            return aes(content.getBytes(charset), Cipher.ENCRYPT_MODE, secretKey);
        }
    
        /**
         * 解密
         *
         * @param 加密内容
         * @param 密钥
         * @return 解密后字符串
         */
        public static String decrypt(byte[] contentArray, SecretKey secretKey) throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException {
            byte[] result = aes(contentArray, Cipher.DECRYPT_MODE, secretKey);
            return new String(result, charset);
        }
    
        private static byte[] aes(byte[] content, int mode, SecretKey secretKey) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
            Cipher cipher = Cipher.getInstance(ALGORITHM);
            cipher.init(mode, secretKey);
            byte[] result = cipher.doFinal(content);
            return result;
        }
    }
  • 相关阅读:
    [刘阳Java]_JdbcTemplate用法_第11讲
    [刘阳Java]_Spring对Dao的支持_第10讲
    [刘阳Java]_Spring AOP基于XML配置介绍_第9讲
    [刘阳Java]_Spring AOP注解详细介绍_第8讲
    [刘阳Java]_Spring AOP入门_第7讲
    [刘阳Java]_Spring常用注解介绍_第6讲
    [刘阳Java]_Spring相关配置介绍_第5讲
    [刘阳Java]_了解BeanFactory_第4讲
    vue传参
    axios的增删改查。
  • 原文地址:https://www.cnblogs.com/songqingguo/p/14245295.html
Copyright © 2011-2022 走看看