$myUsername = $argv[1];
$myUID = $argv[3];
+if ($myUID<100) exit('bad UID');
+
$hescmd = "hesinfo $myUsername passwd";
$hesinfo = explode(':', trim(exec($hescmd)));
if (count($hesinfo)>=4) {
$myName = $myUsername;
}
$myEmail = $myUsername.'@mit.edu';
-$myPassword = substr(md5(uniqid()),0,8);
-
-if ($myUID<100) exit('bad UID');
+$myPassword = trim(exec(dirname(__FILE__).'/../bin/nicepass.py'));
+if (empty($myPassword)) exit('bad Password');
$Login = new Login($myUsername);
if (!$Login->exists() && !empty($myUsername)) {
--- /dev/null
+#!/usr/bin/python
+
+def nicepass(alpha=6,numeric=2):
+ """
+ returns a human-readble password (say rol86din instead of
+ a difficult to remember K8Yn9muL )
+ """
+ import string
+ import random
+ vowels = ['a','e','i','o','u']
+ consonants = [a for a in string.ascii_lowercase if a not in vowels]
+ digits = string.digits
+
+ def a_part(slen):
+ ret = ''
+ for i in range(slen):
+ if i%2 ==0:
+ randid = random.randint(0,20) #number of consonants
+ ret += consonants[randid]
+ else:
+ randid = random.randint(0,4) #number of vowels
+ ret += vowels[randid]
+ return ret
+
+ def n_part(slen):
+ ret = ''
+ for i in range(slen):
+ randid = random.randint(0,9) #number of digits
+ ret += digits[randid]
+ return ret
+
+ fpl = alpha/2
+ if alpha % 2 :
+ fpl = int(alpha/2) + 1
+ lpl = alpha - fpl
+
+ start = a_part(fpl)
+ mid = n_part(numeric)
+ end = a_part(lpl)
+
+ return "%s%s%s" % (start,mid,end)
+
+if __name__ == "__main__":
+ print nicepass()