· 5 years ago · Feb 19, 2020, 08:26 PM
1package ssii;
2
3import java.security.InvalidKeyException;
4import java.security.NoSuchAlgorithmException;
5import java.util.Base64;
6
7import javax.crypto.KeyGenerator;
8import javax.crypto.Mac;
9import javax.crypto.SecretKey;
10
11public class Test {
12
13 public static void main(final String[] args) throws InvalidKeyException {
14 // TODO Auto-generated method stub
15
16 String aux = "18dd06c4ecb143659564c947e83a9f009254d533";
17 String message = "34567891 987654 300";
18 String base64_mac = aux.toUpperCase();
19 int i = 0;
20 int counter = 0;
21 while (i == 0) {
22
23 try {
24 Mac mac1 = Mac.getInstance("HmacSHA1");
25
26 KeyGenerator kg = KeyGenerator.getInstance("HmacSHA1");
27 kg.init(32);
28 SecretKey clave = kg.generateKey();
29
30 mac1.init(clave);
31
32 mac1.update(message.getBytes());
33
34 byte[] b = mac1.doFinal();
35
36 String s = javax.xml.bind.DatatypeConverter.printHexBinary(b);
37 s.toUpperCase();
38 if (base64_mac.getBytes().equals(b)) {
39 System.out.println("true");
40 }
41 if (base64_mac.equals(s)) {
42 i = 1;
43 System.out.println("CLAVE ENCONTRADA: " + Base64.getEncoder().encodeToString(clave.getEncoded()));
44
45 break;
46 } else {
47 counter++;
48 if (counter % 1000000 == 0) {
49 System.out.println("Iteración: " + counter);
50 System.out.println("MAC ENCONTRADO : " + javax.xml.bind.DatatypeConverter.printHexBinary(b));
51 System.out.println("BUSCAMOS: " + base64_mac);
52 System.out.println("CLAVE PROBADA: " + Base64.getEncoder().encodeToString(clave.getEncoded()));
53
54
55 }
56 }
57
58 } catch (NoSuchAlgorithmException e) {
59 // TODO Auto-generated catch block
60 e.printStackTrace();
61 }
62 }
63
64 }
65
66}