Advertisement
Guest User

Untitled

a guest
Sep 15th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.26 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "strconv"
  6.     "os/exec"
  7.     "log"
  8.     "strings"
  9.     //"math"
  10.     )
  11.  
  12. func test_keys(keyset []string, worker_id int) {
  13.     fmt.Println("Worker " + strconv.Itoa(worker_id) + " started.")
  14.     for _, key := range keyset {
  15.         out, err := exec.Command("/home/john/Documents/College/Fa18/'CMPEN 443'/Assignments/cmpsc443cipher/cmpsc443cipher -d -i jdh5658_vigenere_encrypted.txt -c vigenere -k " + key).Output()
  16.         if err != nil {
  17.             log.Fatal(err)
  18.         } else if strings.Contains(string(out), "successfully") {
  19.             fmt.Println("KEY HAS BEEN FOUND: " + key)
  20.             return
  21.         }
  22.     }
  23. }
  24.  
  25. func main() {
  26.     keys := make([]string, 0)
  27.  
  28.     var alphabet = `ABCDEFGHIJKLMNOPQRSTUVWXYZ`
  29.  
  30.     fmt.Println("Generating keys...")
  31.  
  32.     for _, c := range alphabet {
  33.         for _, d := range alphabet {
  34.             for _, e := range alphabet {
  35.                 for _, f := range alphabet {
  36.                     for _, g := range alphabet {
  37.                         keys = append(keys, string(c) + string(d) + string(e) + string(f) + string(g))
  38.                     }
  39.                 }
  40.             }
  41.         }
  42.     }
  43.  
  44.     fmt.Println("Key generation finished.  Starting worker threads to test...")
  45.  
  46.     var partition_1 = 3960458
  47.     var partition_2 = 7920917
  48.  
  49.     go test_keys(keys[0:partition_1], 0)
  50.     go test_keys(keys[partition_1+1:partition_2], 1)
  51.     go test_keys(keys[partition_2+1:len(keys)], 2)
  52.  
  53.  
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement