• 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;
        }
    }
  • 相关阅读:
    微信js sdk动态引用
    mysql
    github 常用
    使用Win32DiskImager后重置SD卡
    nuxt generate静态化后回退问题
    nuxt.config有关router配置
    vue本人常用插件汇总(常更新)
    Windows Server 2008 IIS 并发请求设置
    Python 高级编程 ——观察者模式
    MYSQL语句大全
  • 原文地址:https://www.cnblogs.com/songqingguo/p/14245295.html
Copyright © 2020-2023  润新知