Pass Generator — File Browser

PassGeneratorv2.0 / PassGeneratorv2.0 / passgen.mrc

passgen.mrc — 3.69 KB — Download this file

;PassGen 2.0
;By Lime
;Use /passgen to open dialog

alias genpass {
  did -r passgen 2
  var %a 0
  var %b $did(passgen,1)
  var %last none
  while (%a < %b) {
    inc %a
    :start
    if ($did(passgen,3).state == 1) var %w $rand(0,9)
    if ($did(passgen,4).state == 1) {
      if ($did(passgen,5).sel == 1) var %x $rand(A,Z)
      if ($did(passgen,5).sel == 2) var %x $rand(a,z)
      if ($did(passgen,5).sel == 3) {
        var %i $rand(1,2)
        if (%i == 1) var %x $rand(A,Z)
        else var %x $rand(a,z)
      }
    }
    if ($did(passgen,10).state == 1) {
      var %i $rand(1,2)
      if (%i == 1) var %y $chr(45)
      else var %y $chr(95)
    }
    if ($did(passgen,3).state == 1) && ($did(passgen,4).state == 1) var %z $rand(1,2)
    if ($did(passgen,3).state == 1) && ($did(passgen,4).state == 0) var %z 1
    if ($did(passgen,3).state == 0) && ($did(passgen,4).state == 1) var %z 2
    if ($did(passgen,10).state == 1) {
      if ($did(passgen,3).state == 0) && ($did(passgen,4).state == 0) var %z 3
      else {
        var %i $rand(1,5)
        if (%i == 5) var %z 3
      }
    }
    if (%z == 1) {
      if (%w == %last) goto start
      else did -a passgen 2 %w
      var %last %w
    }
    if (%z == 2) {
      if (%x == %last) goto start
      else did -a passgen 2 %x
      var %last %x
    }
    if (%z == 3) {
      if (%y == %last) goto start
      else did -a passgen 2 %y
      var %last %y
    }
  }
}

alias passgen {
  dialog -m passgen passgen
}

menu nicklist,status,channel {
  PassGen:/passgen
}

dialog passgen {
  title "PassGen v.2.0"
  size -1 -1 79 114
  option dbu
  edit "", 1, 30 7 43 10
  edit "", 2, 5 85 69 10, autohs
  check "Numbers", 3, 31 19 32 10
  check "Letters", 4, 31 29 36 10
  button "Start!", 8, 20 62 36 12, disable
  button "Copy", 9, 3 100 32 12
  button "Done", 12, 43 100 32 12, ok
  box "Setup", 13, 2 0 75 77
  text "Include:", 15, 8 19 21 8, right
  text "Size Limit:", 16, 4 8 25 8, right
  check "Symbols", 10, 31 51 31 10
  box "Password:", 11, 2 77 75 21
  combo 5, 31 39 42 36, size drop
}

on *:dialog:passgen:init:*: {
  did -a $dname 5 Up. Case
  did -a $dname 5 Lw. Case
  did -a $dname 5 Mixed
  did -c $dname 3,4,5 3
}

on *:dialog:passgen:edit:1: {
  if ($did($dname,1) !isnum) did -ra $dname 1 $left($did($dname,1),$calc($len($did($dname,1)) - 1))
  if ($len($did($dname,1)) > 0) {
    if ($did($dname,3).state == 1) || ($did($dname,4).state == 1) || ($did($dname,10).state == 1) did -e $dname 8
  }
  if ($len($did($dname,1)) == 0) did -b $dname 8
}

on *:dialog:passgen:sclick:3: {
  if ($did($dname,3).state == 0) {
    if ($did($dname,4).state == 0) && ($did($dname,10).state == 0) did -b $dname 8
  }
  if ($did($dname,3).state == 1) {
    if ($len($did($dname,1).text) > 0) did -e $dname 8
  }
}

on *:dialog:passgen:sclick:4: {
  if ($did($dname,4).state == 0) {
    did -bu $dname 5,
    if ($did($dname,10).state == 0) && ($did($dname,3).state == 0) did -b $dname 8
  }
  if ($did(passgen,4).state == 1) {
    did -e $dname 5
    did -c $dname 5 3
    if ($len($did($dname,1).text) > 0) did -e $dname 8
  }
}

on *:dialog:passgen:sclick:8:genpass
on *:dialog:passgen:sclick:9:clipboard $did($dname,2)

on *:dialog:passgen:sclick:10: {
  if ($did($dname,10).state == 0) {
    if ($did($dname,3).state == 0) && ($did($dname,4).state == 0) did -b $dname 8
  }
  if ($did($dname,10).state == 1) {
    if ($len($did($dname,1).text) > 0) did -e $dname 8
  }
}

on *:load:  {
  echo -a PassGen has been loaded.  To start using PassGen, type /passgen or select the Passgen option in a popup menu.
  passgen
}

on *:unload:echo -a PassGen has been unloaded.