· 7 years ago · Jun 28, 2018, 02:54 PM
1String password="1234";
2 String encode="UTF-8";
3 String algoritmo="AES";
4
5 private String encripta(String serie) throws Exception {
6 Cipher cipher=Cipher.getInstance(algoritmo);
7 SecretKeySpec secretKey= generatekey();
8 cipher.init(Cipher.ENCRYPT_MODE,secretKey);
9 byte[] datosencriptadosbytes=cipher.doFinal(serie.getBytes());
10 String datosencriptadosstring=
11 Base64.encodeToString(datosencriptadosbytes,Base64.DEFAULT);
12 return datosencriptadosstring;
13}
14
15private SecretKeySpec generatekey() throws Exception {
16 MessageDigest sha=MessageDigest.getInstance(sha_str);
17 byte[] key=password.getBytes(encode);
18 key=sha.digest(key);
19 SecretKeySpec secretKey=new SecretKeySpec(key,algoritmo);
20 return secretKey;
21}
22
23public byte[] AES_Decrypt(byte[] bytesToBeDecrypted, byte[] passwordBytes)
24 {
25 byte[] decryptedBytes = null;
26 byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
27 byte[] saltBytes = Encoding.UTF8.GetBytes("123456789ABCDEF");
28 using (MemoryStream ms = new MemoryStream())
29 {
30 using (AesManaged AES = new AesManaged())
31 {
32 AES.Padding = PaddingMode.Zeros;
33 AES.KeySize = 256;
34 AES.BlockSize = 128;
35
36 var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes,1000);
37 AES.Key = key.GetBytes(AES.KeySize/8 );
38 AES.IV = key.GetBytes(AES.BlockSize /8);
39
40 AES.Mode = CipherMode.ECB;
41 using (var cs = new CryptoStream(ms, AES.CreateDecryptor(), CryptoStreamMode.Write))
42 {
43 cs.Write(bytesToBeDecrypted, 0, bytesToBeDecrypted.Length);
44 cs.Close();
45 }
46 decryptedBytes = ms.ToArray();
47 }
48 }
49
50 return decryptedBytes;
51 }