· 6 years ago · Jul 02, 2019, 11:20 AM
1public static String key = "aaaaaaaabbccccbbaaaaaaaabbccccbb";
2 private static byte[] key_Array = Base64.decode(key,Base64.DEFAULT);
3
4 public static String encrypt(String plainText)
5 {
6 try
7 {
8 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
9
10 // Initialization vector.
11 // It could be any value or generated using a random number generator.
12 byte[] iv = { 1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1, 7, 7, 7, 7 };
13 IvParameterSpec ivspec = new IvParameterSpec(iv);
14
15 Key secretKey = new SecretKeySpec(key_Array, "AES");
16 cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivspec);
17
18 return Base64.encodeToString(cipher.doFinal(plainText.getBytes()),Base64.DEFAULT);
19 }
20 catch (Exception e)
21 {
22 System.out.println("[Exception]:"+e.getMessage());
23 }
24 return null;
25 }
26
27 public static String decrypt(String encryptedMessage)
28 {
29 try
30 {
31 //Cipher _Cipher = Cipher.getInstance("AES");
32 //Cipher _Cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
33 Cipher _Cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
34
35 // Initialization vector.
36 // It could be any value or generated using a random number generator.
37 byte[] iv = { 1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1, 7, 7, 7, 7 };
38 IvParameterSpec ivspec = new IvParameterSpec(iv);
39
40 Key SecretKey = new SecretKeySpec(key_Array, "AES");
41 _Cipher.init(Cipher.DECRYPT_MODE, SecretKey, ivspec);
42
43 byte decodedMessage[] = Base64.decode(encryptedMessage,Base64.DEFAULT);
44 return new String(_Cipher.doFinal(decodedMessage));
45
46 }
47 catch (Exception e)
48 {
49 System.out.println("[Exception]:"+e.getMessage());
50
51 }
52 return null;
53 }
54
55public class Crypt
56 {
57 // C# Code, CipherMode.CBC
58 // CBC version need Initialization vector IV.
59
60 public static string keyStr = "aaaaaaaabbccccbbaaaaaaaabbccccbb";
61 // FFClY170hLrhsDnKUEhJ4FhVOnrpNNFFClY170hLrhsDnKUE
62 public static string Encrypt(string PlainText)
63 {
64 RijndaelManaged aes = new RijndaelManaged();
65 aes.BlockSize = 128;
66 aes.KeySize = 256;
67
68 // It is equal in java
69 /// Cipher _Cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
70 aes.Mode = CipherMode.CBC;
71 aes.Padding = PaddingMode.PKCS7;
72
73 byte[] keyArr = Convert.FromBase64String(keyStr);
74 byte[] KeyArrBytes32Value = new byte[32];
75 Array.Copy(keyArr, KeyArrBytes32Value, 24);
76
77 // Initialization vector.
78 // It could be any value or generated using a random number generator.
79 byte[] ivArr = { 1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1, 7, 7, 7, 7 };
80 byte[] IVBytes16Value = new byte[16];
81 Array.Copy(ivArr, IVBytes16Value, 16);
82
83 aes.Key = KeyArrBytes32Value;
84 aes.IV = IVBytes16Value;
85
86 ICryptoTransform encrypto = aes.CreateEncryptor();
87
88 byte[] plainTextByte = ASCIIEncoding.UTF8.GetBytes(PlainText);
89 byte[] CipherText = encrypto.TransformFinalBlock(plainTextByte, 0, plainTextByte.Length);
90 return Convert.ToBase64String(CipherText);
91
92 }
93
94 public static string Decrypt(string CipherText)
95 {
96 RijndaelManaged aes = new RijndaelManaged();
97 aes.BlockSize = 128;
98 aes.KeySize = 256;
99
100 aes.Mode = CipherMode.CBC;
101 aes.Padding = PaddingMode.PKCS7;
102
103 byte[] keyArr = Convert.FromBase64String(keyStr);
104 byte[] KeyArrBytes32Value = new byte[32];
105 Array.Copy(keyArr, KeyArrBytes32Value, 24);
106
107 // Initialization vector.
108 // It could be any value or generated using a random number generator.
109 byte[] ivArr = { 1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1, 7, 7, 7, 7 };
110 byte[] IVBytes16Value = new byte[16];
111 Array.Copy(ivArr, IVBytes16Value, 16);
112
113 aes.Key = KeyArrBytes32Value;
114 aes.IV = IVBytes16Value;
115
116 ICryptoTransform decrypto = aes.CreateDecryptor();
117
118 byte[] encryptedBytes = Convert.FromBase64CharArray(CipherText.ToCharArray(), 0, CipherText.Length);
119 byte[] decryptedData = decrypto.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
120 return ASCIIEncoding.UTF8.GetString(decryptedData);
121 }
122 }