Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.crypto.Cipher;
- import javax.crypto.KeyGenerator;
- import javax.crypto.SecretKey;
- import javax.crypto.spec.IvParameterSpec;
- import javax.crypto.spec.SecretKeySpec;
- import java.security.SecureRandom;
- import java.util.Base64;
- public class AESCrypto {
- public static String keyToString(SecretKey secretKey){
- return Base64.getEncoder().encodeToString(secretKey.getEncoded());
- }
- public static SecretKey stringToKey(String key) throws Exception {
- return new SecretKeySpec(key.getBytes("UTF-8"), "AES");
- }
- public static String ivToString(IvParameterSpec ivParameterSpec){
- return Base64.getEncoder().encodeToString(ivParameterSpec.getIV());
- }
- public static IvParameterSpec stringToIV(String string) throws Exception {
- return new IvParameterSpec(string.getBytes("UTF-8"));
- }
- public static IvParameterSpec generateIV() throws Exception {
- SecureRandom randomSecureRandom = SecureRandom.getInstance("SHA1PRNG");
- byte[] iv = new byte[Cipher.getInstance("AES").getBlockSize()];
- randomSecureRandom.nextBytes(iv);
- return new IvParameterSpec(iv);
- }
- public static SecretKey generateKey() throws Exception {
- KeyGenerator keyGen = KeyGenerator.getInstance("AES");
- keyGen.init(128); // for example
- return keyGen.generateKey();
- }
- public static String encryptString(SecretKey key, IvParameterSpec initVector, String plainText){
- try {
- Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
- cipher.init(Cipher.ENCRYPT_MODE, key, initVector);
- byte[] encrypted = cipher.doFinal(plainText.getBytes());
- return Base64.getEncoder().encodeToString(encrypted);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return null;
- }
- public static String decryptString(SecretKey key, IvParameterSpec initVector, String encryptedText) {
- try {
- Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
- cipher.init(Cipher.DECRYPT_MODE, key, initVector);
- byte[] original = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
- return new String(original);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return null;
- }
- public static String encryptString(String key, String initVector, String plainText) {
- try {
- SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
- IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
- return encryptString(keySpec, iv, plainText);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return null;
- }
- public static String decryptString(String key, String initVector, String encryptedText) {
- try {
- SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
- IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
- return decryptString(keySpec, iv, encryptedText);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement