AES加解密方法

import java.nio.charset.StandardCharsets;

import java.security.SecureRandom;

import javax.crypto.Cipher;

import javax.crypto.KeyGenerator;

import javax.crypto.SecretKey;

import javax.crypto.spec.SecretKeySpec;

public class AESHelper {

    /**

    * AES加密

    *

    * @param value 明文

    * @param key  密钥

    * @return 密文

    */

    public static String encrypt(String value, String key) {

        try {

            KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");

            keyGenerator.init(128, new SecureRandom(key.getBytes()));

            SecretKey secretKey = keyGenerator.generateKey();

            byte[] enCodeFormat = secretKey.getEncoded();

            SecretKeySpec keySpec = new SecretKeySpec(enCodeFormat, "AES");

            Cipher cipher = Cipher.getInstance("AES");

            cipher.init(Cipher.ENCRYPT_MODE, keySpec);

            return new String(cipher.doFinal(value.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);

        } catch (Exception e) {

            e.printStackTrace();

        }

        return null;

    }

    /**

    * AES解密

    *

    * @param value 密文

    * @param key  密钥

    * @return 明文

    */

    public static String decrypt(String value, String key) {

        try {

            KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");

            keyGenerator.init(128, new SecureRandom(key.getBytes()));

            SecretKey secretKey = keyGenerator.generateKey();

            byte[] enCodeFormat = secretKey.getEncoded();

            SecretKeySpec keySpec = new SecretKeySpec(enCodeFormat, "AES");

            Cipher cipher = Cipher.getInstance("AES");

            cipher.init(Cipher.DECRYPT_MODE, keySpec);

            return new String(cipher.doFinal(value.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);

        } catch (Exception e) {

            e.printStackTrace();

        }

        return null;

    }

}

你可能感兴趣的:(AES加解密方法)