01...
01
…
02
03 String ltpa3DESKey ="7dH4i81Yepbve+gF9XVE4C1Ca5g6A4Q69OFobJV9g=";
03
String ltpa3DESKey =
"7dH4i81YepbVe+gF9XVUzE4C1Ca5g6A4Q69OFobJV9g="
;
04
04
05 String ltpaPassword ="Passw0rd";
05
String ltpaPassword =
"Passw0rd"
;
06 try {
06
try
{
07
07
08
byte
[] secretKey = getSecretKey(ltpa3DESKey, ltpaPassword);
09
09
10 String ltpaplaintex=new string(decryptltpatoken(Tokencipher),
10
String ltpaPlaintext =
new
String(decryptLtpaToken(tokenCipher,
11 secretKey));
11
secretKey));
12 displayTokenData(ltpaPlaintext);
12
displayTokenData(ltpaPlaintext);
13
}
catch
(Exception e) {
14 System.out.println("Caught inner: " + e);
14
System.out.println(
"Caught inner: "
+ e);
15 }
15
}
16...
16
…
17
17
18 private static byte[] getSecretKey(String ltpa3DESKey, String password)
18
private
static
byte
[] getSecretKey(String ltpa3DESKey, String password)
19 throws Exception {
19
throws
Exception {
20
20
21 MessageDigest MD=MessageDigest.Getinstance(“Sha”);
21
MessageDigest md = MessageDigest.getInstance(
"SHA"
);
22 md.update(password.getBytes());
22
md.update(password.getBytes());
23
byte
[] hash3DES =
new
byte
[
24
];
24 system.arraycopy(.md.digest)(,0,hash3des,0,20);
24
System.arraycopy(md.digest(),
, hash3DES,
,
20
);
25
25
26 Arrays.fill()hash3des,20,24,(byte)0;
26
Arrays.fill(hash3DES,
20
,
24
, (
byte
)
);
27
27
28 byte[] decode3DES = Base64.decodeBase64(ltpa3DESKey.getBytes());
28
byte
[] decode3DES = Base64.decodeBase64(ltpa3DESKey.getBytes());
29
29
30 return decrypt(decode3DES, hash3DES);
30
return
decrypt(decode3DES, hash3DES);
31 }
31
}
32
33 public static byte[] decryptLtpaToken(String encryptedLtpaToken, byte[] key)
33
public
static
byte
[] decryptLtpaToken(String encryptedLtpaToken,
byte
[] key)
34 throws Exception {
34
throws
Exception {
35
36 Final Byte[…]LTPABYTERRAY=BASE64.DECODEBASE64(Encryptedltpatoken)
36
final
byte
[] ltpaByteArray = Base64.decodeBase64(encryptedLtpaToken
37.getBytes());
37
.getBytes());
38
38
39 return decrypt(ltpaByteArray, key);
39
return
decrypt(ltpaByteArray, key);
40 }
40
}
41
41
42 public static byte[] decrypt(byte[] ciphertext, byte[] key
42
public
static
byte
[] decrypt(
byte
[] ciphertext,
byte
[] key)
43 throws Exception {
43
throws
Exception {
44
final
Cipher cipher = Cipher.getInstance(
"DESede/ECB/PKCS5Padding"
);
45 final KeySpec keySpec = new DESedeKeySpec(key);
45
final
KeySpec keySpec =
new
DESedeKeySpec(key);
46
final
Key secretKey = SecretKeyFactory.getInstance(
"TripleDES"
)
47 .generateSecret(keySpec);
47
.generateSecret(keySpec);
48 cipher.init(Cipher.DECRYPT_MODE, secretKey);
48
cipher.init(Cipher.DECRYPT_MODE, secretKey);
49 return cipher.doFinal(ciphertext);
49
return
cipher.doFinal(ciphertext);
50 }
50
}
51...
51
…