Skip to content

Commit

Permalink
add checks for pw
Browse files Browse the repository at this point in the history
  • Loading branch information
davemolk committed Nov 10, 2022
1 parent 53be777 commit 1bf650d
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 28 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ google dorking, but with duck duck go (so, not google dorking...)
parse urls in style. read urls from a line-separated file or from stdin. Get domains, keys, a map of keys and values, paths, user info (username and password), or values.

## pw
need a kinda safe(ish?) password and too lazy to log into your pw manager or some rando genderating rando site? type something in and get a mostly gibberish password.
need a kinda sorta safe(ish?) password and too lazy to log into your pw manager or some rando genderating rando site? type something in and get a mostly gibberish password that contains at least one lower-case letter, one upper-case, one special character, and one number. yay for practicing pipelines

## tas
throw against site (pull down archived links from Wayback Machine, run against the site, see what status codes currently are)
Expand Down
2 changes: 2 additions & 0 deletions lines/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ func readFile(file, ext string) (<-chan []string, error) {
c := csv.NewReader(f)
go func() {
defer close(ch)
defer f.Close()
for {
record, err := c.Read()
if err != nil {
Expand All @@ -158,6 +159,7 @@ func readFile(file, ext string) (<-chan []string, error) {
scanner := bufio.NewScanner(f)
go func() {
defer close(ch)
defer f.Close()
for scanner.Scan() {
var lines []string
lines = append(lines, scanner.Text())
Expand Down
77 changes: 50 additions & 27 deletions pw/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,14 @@ import (
)

func main() {
rand.Seed(time.Now().UnixNano())
ch, err := read()
if err != nil {
log.Fatal(err)
}
var result []string
for c := range specials(nums(lower(upper(ch)))) {
result = append(result, c)
}
noSpace := strings.Replace(strings.Join(result, ""), " ", "", -1)
fmt.Println(noSpace)
// check at least 1 number, at least 1 lower, 1 upper, 1 special char, maybe weigh the
// things differently (instead of 50/50 chance of swapping?)

pw := checkBoxes(specials(nums(lower(upper(ch)))))
fmt.Println(pw)
}

func read() (<-chan string, error) {
Expand All @@ -43,17 +39,12 @@ func read() (<-chan string, error) {
return ch, nil
}

func gimmeNum(num int) int {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
return r.Intn(num)
}

func upper(s <-chan string) <-chan string {
func upper(str <-chan string) <-chan string {
ch := make(chan string)
go func() {
defer close(ch)
for char := range s {
if gimmeNum(2) == 1 {
for char := range str {
if rand.Intn(2) == 1 {
char = strings.ToUpper(char)
}
ch <- char
Expand All @@ -62,12 +53,12 @@ func upper(s <-chan string) <-chan string {
return ch
}

func lower(s <-chan string) <-chan string {
func lower(str <-chan string) <-chan string {
ch := make(chan string)
go func() {
defer close(ch)
for char := range s {
if gimmeNum(2) == 1 {
for char := range str {
if rand.Intn(2) == 1 {
char = strings.ToLower(char)
}
ch <- char
Expand All @@ -76,36 +67,62 @@ func lower(s <-chan string) <-chan string {
return ch
}

func nums(s <-chan string) <-chan string {
func nums(str <-chan string) <-chan string {
ch := make(chan string)
go func() {
defer close(ch)
nums := getNums()
for char := range s {
if gimmeNum(2) == 1 {
char = nums[gimmeNum(len(nums))]
for char := range str {
if rand.Intn(2) == 1 {
char = nums[rand.Intn(len(nums))]
}
ch <- char
}
}()
return ch
}

func specials(s <-chan string) <-chan string {
func specials(str <-chan string) <-chan string {
ch := make(chan string)
go func() {
defer close(ch)
sp := getSpecials()
for char := range s {
if gimmeNum(2) == 1 {
char = sp[gimmeNum(len(sp))]
for char := range str {
if rand.Intn(2) == 1 {
char = sp[rand.Intn(len(sp))]
}
ch <- char
}
}()
return ch
}

func checkBoxes(str <-chan string) string {
var preCheck []string
for char := range str {
preCheck = append(preCheck, char)
}
lowers := getLetters()
newLower := lowers[rand.Intn(len(lowers))]
newUpper := strings.ToUpper(lowers[rand.Intn(len(lowers))])
specials := getSpecials()
newSpecial := specials[rand.Intn(len(specials))]
nums := getNums()
newNum := nums[rand.Intn(len(nums))]
preCheck = append(preCheck, newLower, newUpper, newSpecial, newNum)

rand.Shuffle(len(preCheck), func(i, j int) {
preCheck[i], preCheck[j] = preCheck[j], preCheck[i]
})

noSpaces := strings.Replace(strings.Join(preCheck, ""), " ", "", -1)
// cause that one time...
noReturn := strings.Replace(noSpaces, "\n", `n\`, -1)

return noReturn
}


func getSpecials() []string {
return []string{
`"`, " ", "!", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "?", "@", "[", `\`, "`", "]", "^", "_", "{", "|", "}", "~",
Expand All @@ -116,4 +133,10 @@ func getNums() []string {
return []string{
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
}
}

func getLetters() []string{
return []string{
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
}
}

0 comments on commit 1bf650d

Please sign in to comment.