· 5 years ago · Feb 18, 2020, 06:54 AM
1import javax.crypto.KeyGenerator;
2import javax.crypto.SecretKey;
3import javax.crypto.Cipher;
4import sun.misc.BASE64Encoder;
5import sun.misc.BASE64Decoder;
6import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
7import javax.crypto.spec.SecretKeySpec;
8
9public class AesEncrDec
10{
11 public static void main(String args[])
12 {
13 String plainData="hello",cipherText,decryptedText;
14
15 try
16 {
17 /* Key Generation */
18
19 KeyGenerator keyGen = KeyGenerator.getInstance("AES");
20 keyGen.init(128);
21 SecretKey secretKey =keyGen.generateKey();
22 System.out.println("Secret Key is "+secretKey);
23
24
25 /* Performing Encryption */
26
27 Cipher aesCipher = Cipher.getInstance("AES");
28 aesCipher.init(Cipher.ENCRYPT_MODE,secretKey);
29 byte[] byteDataToEncrypt = plainData.getBytes();
30 byte[] byteCipherText = aesCipher.doFinal(byteDataToEncrypt);
31 cipherText = new BASE64Encoder().encode(byteCipherText);
32
33 String stringKey=Base64.encode(secretKey.getEncoded()); //for send key to other party....
34
35
36 /* Other party gets originalKey from stringKey */
37
38 byte[] encodedKey = Base64.decode(stringKey);
39 SecretKey originalKey = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
40 System.out.println("Original Key is "+originalKey);
41
42
43 /* Performing Decryption */
44
45 byte[] byteChipherText=new BASE64Decoder().decodeBuffer(cipherText);
46 Cipher aesCipher1 = Cipher.getInstance("AES");
47 aesCipher1.init(Cipher.DECRYPT_MODE,originalKey,aesCipher1.getParameters());
48 byte[] byteDecryptedText = aesCipher1.doFinal(byteChipherText);
49 decryptedText = new String(byteDecryptedText);
50
51 System.out.println("\n Plain Data : "+plainData+" \n Cipher Data : "+cipherText+" \n Decrypted Data : "+decryptedText);
52 }
53 catch(Exception e)
54 {
55 e.printStackTrace();
56 }
57 }
58}