package main import ( "fmt" "log" "os" "strconv" //"time" ) // {firstname}_{firstname backwards}_{randomly generated integer between 1 and 1,000,000,000} func main() { if len(os.Args) != 4 { fmt.Println("Usage: ./perfection-crack susan 1 1000000000") os.Exit(0) } //fmt.Println(os.Args[1], os.Args[2], os.Args[3]) name := os.Args[1] minNum := os.Args[2] maxNum := os.Args[3] minNumInt, _ := strconv.Atoi(minNum) maxNumInt, _ := strconv.Atoi(maxNum) writer(name, minNumInt, maxNumInt) } func reverseString(str string) (revStr string) { strByte := []rune(str) for i := len(strByte) - 1; i >= 0; i-- { revStr += string(strByte[i]) } return revStr } func writer(name string, low int, high int) { file, err := os.OpenFile("./passwords.txt", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0640) if err != nil { log.Fatalf("Error occurred: %v\n", err) } defer file.Close() reverseName := reverseString(name) nameToWrite := fmt.Sprintf("%v_%v_", name, reverseName) //fmt.Println(name, reverseName, nameToWrite) for i := low; i <= high; i++ { fmt.Printf("Writing \"%v%v\" to passwords.txt...\n", nameToWrite, i) file.WriteString(nameToWrite + fmt.Sprintln(i)) //time.Sleep(time.Millisecond * 50) } }