Password Generator Script

By Visnew on Oct 03, 2009

This script generates a random password using alphanumeric characters, including capitals.
It asks you for a length (can't be over 64).

alias passgen {
  set %times 0
  :redo
  set %number $?="Please specify length (64 or under)."
  set %timestotal $calc(%number - 1)
  if (%timestotal <= 63) {
    :start
    if (%times !> %timestotal) {
      set %upper $rand(0,1)
      set %numalp $rand(0,1)
      if (%numalp == 0) {
        if (%char) {
          set %char [ %char ] $+ $rand(0,9)
        }
        else {
          set %char $rand(0,9)
        }
        inc %times
        goto start
      }
      else {
        if (%upper == 0) {
          if (%char) { 
            set %char [ %char ] $+ $rand(a,z)
          }
          else { set %char $rand(a,z)
          }
          inc %times
          goto start
        }
        if (%upper == 1) {
          if (%char) {
            set %char [ %char ] $+ $rand(A,Z)
          }
          else {
            set %char $rand(A,Z)
          }
          inc %times
          goto start
        }
      }
    }
    else {
      echo -a Your password is: [ %char ]
      unset %times
      unset %timestotal
      unset %number
      unset %upper
      unset %numalp
      unset %char
    }
  }
  else {
    goto redo
  }
}

Comments

Sign in to comment.
sunslayer   -  Oct 04, 2009
      unset %times
      unset %timestotal
      unset %number
      unset %upper
      unset %numalp
      unset %char

can be shortened into

unset %times %timestotal %number %upper %numalp %char

or instead of using /set you can use /var to make it local and they will automatically be unset after script is done processing

 Respond  
FordLawnmower   -  Oct 04, 2009

You did it Visnew :)

 Respond  
Visnew   -  Oct 04, 2009

Meh. Just wanted to see if I could script this. ;o
I cleaned up the vars, FordLawnmower. :P

 Respond  
Jethro   -  Oct 04, 2009

I've seen a script using mirc binary files to randomly generate passwords before.

 Respond  
FordLawnmower   -  Oct 04, 2009

Good one sunslayer :) I had this.

alias pass { $iif($isid,return,echo -a) $regsubex($str(.,$1),/./g,$chr($iif($r(0,2),$iif($r(0,1),$r(65,90),$r(97,122)),$r(48,57)))) }

Mine excludes special characters.

 Respond  
Cracker200   -  Oct 04, 2009

Rip Lame -.-

 Respond  
sunslayer   -  Oct 03, 2009

this is another example of where $regsubex is very useful

alias mkpass echo -a your pass is: $regsubex($str(.,$1),/./g,$iif($regex(\n,/d*[2468]),$r(a,Z),$r(A,z)))

ex: /mkpass 50 = your pass is: QaB^zaOZJSx\Ka]`^C\^^[]__ZCmh^_X^G^^a[[_[^aZe

 Respond  
GlobalAnomaly   -  Oct 03, 2009

Too many of these lately.

 Respond  
FordLawnmower   -  Oct 03, 2009

You set 6 global variables Visnew and I only see that you unset 1 of them.

 Respond  
Ghost-writer   -  Oct 03, 2009

Your password is: 7CDcd564iHLXrl2A4Qe255Z5v3Cc3lR49taRUnaGASpPJF7RQh9Vy2X998DxmpzE9c4v7E4v20WKM15DM762h3y8kA2tf72j3941231n7P07L7100i0nq7i6e6j6RwD3QbyBEd4H0j2014Y9277YS6Wp54M68Yg6Cv77J0J24890w1M6Cz1Dn0BxM4v2dJ8mi93913n918r24246H449mLgq7h0xV8ub9m4otU3j82Ch566sdJuXBu4Q764FV61vK098i81A37q58Kpj39D013n6n90st4T05A8XPTGI887878Q778Js5Jq13S171Biv0Kw3216akP2byb14CHQV1l9p7oz85q36N3H6p5p5SfNgM6k97xU1F8tG53CfT0Im3Z276Vk279615p3k9QlCMo74WT1S71mkt960oWe18T9X5aYn7c6Lh97x32gg094flHw8544e387H87y94uLo3848Zi6p00I699H1A6R286d515P2t3hZJVZ46cucYp2543O2lQN6T1FN192825O1c6Ft1G625v9Ra4dqp015ue0pIIsuU877324069lhnq7Q879705d91413mH6oJ5dmjci50Pg6J9u5Wq0Jn84tou546h13q30D0MO9aHR81t1O1wZv93Yn36R1j7w36m6Q82RD8i7a4r625u88w5iK1FR09d721V8aXW3Axx0Bkr72W40939lcC27X9295v6VI44I5pUcP393u29r85aL5S4NJ3w1Y885f27X68QXWS50msAsi27FW2m6gA05dH91854729w7UcA80T670p1R1E8M8Q4AE9178Y184C38cf4rN5g7X02874352kl00m852Lb872850maz4Q6DORo87T46Ez7K6L6917615t769AZgt050X2X8q07MrEN45259BJg57868E4wbjt01HD2lk9d037r7h10jIW09o7906397g2HQ8611P734sC068z528473F5jL082Vq7EF9D941nL0Hy94n298J2TtRF35b55e2FgA85ew80kGBdh73qO0861R50G719OHh31gmg878J67x7ANdXIadf3y1F77Av7d06UHCbiI879393OnpiU87YUT13a63AAQjo4G3t33mTJ0LRC480aR78mg8Xe0180dR596LU73ee4b5aq0wHbfSvO3BZ11Ul8WSDJ38622753tw9Zww25X0u45ggeWF3nu82G309Xz5A49XjUeEf3708AP98b6yLWf26K18AHVP3uxn9J081Gl36M0AaS21F747jCE9v784Wg0BX87SdC4X8412GA3698a3Ota32Yn3L3X4Z20D5mYT0Al6us2Lq3S7J17NVn3wmLNdinOtmEUY5O4vH7996F6s5s6ZIb33471x0Pz57x2wQ2rd8Fpb927Vtk318cF44WFi97W55XT5W3e4fHQ509y8fH3523euET61rPVwGewAxw86T2040c6N878o3W1k1LqK38366wd5i5N599wx574eWg8pz0N015o4T85iCPAh38DX9cD21466X7K40TVkRvg2RXf4NB6L12jFn68v1Drpco512Fz3839c467968itG72J686C7t436J9k38E3uWmbG4z1Ka6kiPE2W0w9hS8Y2O8135764471234g40S88H3sc92DCX694lRihAH117HN3g95828056q127r2HwS115G2t460zCG286W7DO32ZvL815p7A1ROfjoO628c4C7fLJ563Td87N785F7K8n09NN90wZ9AB9I7m9X622aE4198w7uR6314282822yQe9n93MHlfIIvJ8f8b617vYua4k778w8rv6NKmwRlY9Us5fR8G59A409441yKc6I9w8735431u016F7n35l8X51U21sT4t673702908388s8p4pzJQ0Vl5Gu7824qQ6163Lu6215gb1Yz4sw9u65TlwmD46g6v48x5o708C060I15Fh64wA04RI8wv2cr8F734L32qI50dW3bF0cDHMvH1N17u8cnX6jMf7FRIQ93sH3932p185XVX4X66YpnF6t40155Vb03qTi1M3E8t4550KYuG1zHw5X5xYv2J3LyFe6OM5o935792394L172d0eB3MIeSp1fZl92qz5942p87l59G094902l950tV0c67X08fyz6fU892GvQ00103m21R4075134ov2764R4v08L8l310B04QydjlT9l52Xcm9F33e411X35Z3b3F123o8CA67CQ0P9lfEyKL508fopAAvzKKv1R4pt7r49fFiC9Y69R5E2B6lVMJoo80DT06gnzyDQF6I7Mi9Li0maS36F92Dj006gjG3308FtiH46q4559Q2ZW1yr9rhvjzq10oi3072Z4347g274md540yC024D7oVDrOT13h5wa1i823k2x7vp1ya29344K62y71sCpWzvqZ4t18vivF3skTm71xc44599356q7i08e0mp79o4806WC9SEJ5n64P9x01qZpD7Zg148048M01y5mv9p51v9e4A2r29x5y7Nf2N84dNmKOE5MiPUD82FfBYp88q7mV4xGhF4q0uMq3110O998365XMYFZ0X6364CeI37M1WT5h0zq0wdVo3p9AX205Q470m9L4563DLK18v37JMP857t8Er06oJ1FN6AZggLY2eM7E320166n3j4QqU9t1163ko4O9g7K8fl7i1Y22839O1P4T12oa10w512EnE4Mi54lWUG77z17rgt41uq6kcHjWjlUtAUb997Z5CfQ7i4h439f1rNj14OHid2YhX81J6Z54Q48RG3N1h8m7588xGh2rn24gfdAf243K845aq8f880719318OiUH48B4s2D6l3qd482paU865840S912C4FtdSg13n7sXHwgD1vD0961S1A549LIJA91ZLD28806AYe82VSj5zs0C9Ip79S08ieW2J1163Xz74u6D2Mm5221w44g903Ucu4F0rP1h0933jY9bMDqz6H522LXwXryl3s7128Dd1Gsd35Z0535L097N4b310UE3820oL440PH9EdI25YF4963B15fWMEk1O48f0P121DHbEz7QHV5bs17pjBy47jh4M33V52jR68EZ253eQwm8Z5JrBdA6n7Rxq9NA1H968n76E6fl57n034507k688M232M7w5Hix70C497L804sH265k5vzMYY3w9SiBEI8b2iS11741u73BTH10838HQu6017oX60927V2q5V78N726h449t3b6Wky9in4E2b80oMRQh691XDLPN6472s0336H4xyo19C1n24ak0YP714ud6O2xH64ch9n1GeO1zLOr2ht81Qf9UsWu847915e344WJvw8U2kn395983VH99V56stY8O11k358x6287423Mi46Qm27I57CC75w63j3yE24uru976f4985O38V32387553ieAv29005Z69126SK5o57J98843DR781s5e1zcU09N6pth13BO7kxpW0j8g0p928x408K31HQ84dFpejNkq4336dF8w644ff7zR525iwQO8m3pPji517kxO1r581gq6D8VMgYqp114u981fc1l4X14389R832779wi162eV3066l70kVW3nNq528g5a5r378gI836rqiJ41Qk9k5BQp5Ng1075L20uz22H5950u14yyt759ER3naC1c9X52J2z8a4SXgEvB7952je06F4T0970Yb977QANVQ190dxyGQj47W53hyc977aj8s84qM4ay4lm99105Q4q6jy3j8q4r9q1RUp4N12307926b2Li262M00emZ12031W8rM546j0jKQPWg99n7639tF79J130048vX6d92CI612RJP2oc76H0N4jXa77m1iK0rTnh68X5b64z338W047f6rkms00N7z5kQ6SVH547I5l1MX8P0558Oi04V21kyRg18P3k00BY8PtskI3479992DiEfPT12LC04Od2Uyk21Z2zP63Qmo0TIhT99NS3wY851any3N43U6V240e6l58uHZp07ulGLn70NjM7kuqEV5LAF5PLi35T20ja5CfnUx76SR18wyt00CJei2l10b00Bi8XYTAVN42u1j0Jss8HuSK89M8z39Y31A99sx2r --- works with 9999, why limit at 64?

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.