· 6 years ago · Jun 04, 2019, 11:31 PM
1package main
2
3import (
4 "github.com/gitchander/permutation"
5 "encoding/hex"
6 "crypto/sha1"
7 "crypto/hmac"
8 "strings"
9 "fmt"
10 "os"
11)
12
13func main() {
14
15 secretKey := "9LXAVCxcITaABNK48pAVgc4muuTNJ4enIKS5YzKyGZ"
16 finalHash := "77cc91113efbcea99ea0d5b5450f3d159694d6a2"
17 params := []string{"bb0b4a65077f7385", "09XXXXXXXX", "m8J9IpbfSBZY3Kc4AYhUMriZrZa1jqZT5EdJp9LJFcv/OAaZagEAAA==", "123456", "ABCD", "1557465220750", "mobile"}
18
19 byteFinalHash, _ := hex.DecodeString(finalHash)
20 prmt := permutation.New(permutation.StringSlice(params))
21
22 fmt.Println("Brute-forcing...")
23 for prmt.Next() {
24 secretMessage := strings.Join(params[:], "|")
25 mac := hmac.New(sha1.New, []byte(secretKey))
26 mac.Write([]byte(secretMessage))
27 digest := mac.Sum(nil)
28 if (hmac.Equal(byteFinalHash, digest)) {
29 fmt.Printf("\nFound a message pattern: %s\nKey: %s\nHash: %s\n", secretMessage, secretKey, hex.EncodeToString(byteFinalHash))
30 os.Exit(0)
31 }
32 }
33 fmt.Println("Sorry, no pattern found")
34
35}