· 9 years ago · Jan 29, 2017, 09:20 AM
1package net.appersian.android.wod.common;
2
3import java.security.SecureRandom;
4
5import javax.crypto.Cipher;
6import javax.crypto.KeyGenerator;
7import javax.crypto.SecretKey;
8import javax.crypto.spec.SecretKeySpec;
9
10public class Encryptor {
11
12 public static byte[] generateKey(String password) throws Exception
13 {
14 byte[] keyStart = password.getBytes("UTF-8");
15
16 KeyGenerator kgen = KeyGenerator.getInstance("AES");
17 SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
18 sr.setSeed(keyStart);
19 kgen.init(128, sr);
20 SecretKey skey = kgen.generateKey();
21 return skey.getEncoded();
22 }
23
24 public static byte[] encodeFile(byte[] key, byte[] fileData) throws Exception
25 {
26
27 SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
28 Cipher cipher = Cipher.getInstance("AES");
29 cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
30
31 byte[] encrypted = cipher.doFinal(fileData);
32
33 return encrypted;
34 }
35
36 public static byte[] decodeFile(byte[] key, byte[] fileData) throws Exception
37 {
38 SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
39 Cipher cipher = Cipher.getInstance("AES");
40 cipher.init(Cipher.DECRYPT_MODE, skeySpec);
41
42 byte[] decrypted = cipher.doFinal(fileData);
43
44 return decrypted;
45 }
46
47}