From dd1594e191614653f323be80f647de9b0bff7c09 Mon Sep 17 00:00:00 2001 From: Thefaxepower Date: Sun, 3 Oct 2021 15:08:05 +0200 Subject: [PATCH] AES java algoritgm --- AESEncryptionDecryption.java | 81 ++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 AESEncryptionDecryption.java diff --git a/AESEncryptionDecryption.java b/AESEncryptionDecryption.java new file mode 100644 index 0000000..cc4fe91 --- /dev/null +++ b/AESEncryptionDecryption.java @@ -0,0 +1,81 @@ +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Arrays; +import java.util.Base64; + +import javax.crypto.Cipher; +import javax.crypto.spec.SecretKeySpec; + +public class AES { + + private static SecretKeySpec secretKey; + private static byte[] key; + + public static void setKey(String myKey) + { + MessageDigest sha = null; + try { + key = myKey.getBytes("UTF-8"); + sha = MessageDigest.getInstance("SHA-1"); + key = sha.digest(key); + key = Arrays.copyOf(key, 16); + secretKey = new SecretKeySpec(key, "AES"); + } + catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + + public static String encrypt(String strToEncrypt, String secret) + { + try + { + setKey(secret); + Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); + cipher.init(Cipher.ENCRYPT_MODE, secretKey); + return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8"))); + } + catch (Exception e) + { + System.out.println("Found error while encrypting: " + e.toString()); + } + return null; + } + + public static String decrypt(String strToDecrypt, String secret) + { + try + { + setKey(secret); + Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING"); + cipher.init(Cipher.DECRYPT_MODE, secretKey); + return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt))); + } + catch (Exception e) + { + System.out.println("Found error while decrypting: " + e.toString()); + } + return null; + } +} + +/* TESTCODE TO RUN: + +public static void main(String[] args) +{ + final String secretKey = "donttellanyone!"; + + String originalString = "THISISASTRING"; + String encryptedString = AES.encrypt(originalString, secretKey) ; + String decryptedString = AES.decrypt(encryptedString, secretKey) ; + + System.out.println(originalString); + System.out.println(encryptedString); + System.out.println(decryptedString); +} + +*/ \ No newline at end of file