· 7 years ago · Apr 19, 2018, 06:16 AM
1package com.noisyz.bittrexclient;
2
3import android.util.Base64;
4import android.util.Log;
5
6import java.nio.charset.StandardCharsets;
7import java.security.Key;
8
9import javax.crypto.Cipher;
10import javax.crypto.SecretKeyFactory;
11import javax.crypto.spec.IvParameterSpec;
12import javax.crypto.spec.PBEKeySpec;
13
14public class Encryptor {
15
16 private static final String PASSWORD_HASH = "9h@LLaVR", SALT_KEY = "58Y#@Afc", VI_KEY = "2rsAG$4!74z@P$dH";
17
18 public static String encrypt(String value) {
19 try {
20 SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
21 PBEKeySpec pbeKeySpec = new PBEKeySpec(PASSWORD_HASH.toCharArray(), SALT_KEY.getBytes("US-ASCII"), 1000, 256);
22 Key secretKey = factory.generateSecret(pbeKeySpec);
23
24
25 IvParameterSpec ivSpec = new IvParameterSpec(VI_KEY.getBytes("US-ASCII"));
26
27 Cipher cipher = Cipher.getInstance("AES/CBC/ZeroBytePadding");
28 cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivSpec);
29 byte[] encrypted = cipher.doFinal(value.getBytes());
30 Log.d("myLogs", "encrypted string: "
31 + Base64.encodeToString(encrypted, 0));
32 return Base64.encodeToString(encrypted, 0);
33 } catch (Exception ex) {
34 ex.printStackTrace();
35 }
36
37 return null;
38 }
39
40 public static String decrypt(String value) {
41 try {
42 byte[] encrypted = Base64.decode(value, 0);
43 SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
44 PBEKeySpec pbeKeySpec = new PBEKeySpec(PASSWORD_HASH.toCharArray(), SALT_KEY.getBytes("US-ASCII"), 1000, 256);
45 Key secretKey = factory.generateSecret(pbeKeySpec);
46
47 IvParameterSpec ivSpec = new IvParameterSpec(VI_KEY.getBytes("US-ASCII"));
48
49 Cipher cipher = Cipher.getInstance("AES/CBC/ZeroBytePadding");
50 cipher.init(Cipher.DECRYPT_MODE, secretKey, ivSpec);
51
52 byte[] decrypted = cipher.doFinal(encrypted);
53 Log.d("myLogs", "decrypted string: "
54 + new String(decrypted, StandardCharsets.UTF_8) + " " + secretKey.getEncoded().toString());
55 return new String(decrypted, StandardCharsets.UTF_8);
56 } catch (Exception ex) {
57 ex.printStackTrace();
58 }
59
60 return null;
61 }
62}