/ Published in: JavaScript
Generates keyboard-friendly passwords. Use: pwd.gen(7,1) (generate a 7 char password with 1 special character)
Expand |
Embed | Plain Text
/* * pwd - Generate keyboard-friendly passwords * base: base chars * chars: basechars with anexing keys * special: special chars * gen: (function) generates password with arguments: * len: length of password * spec: number of special characters * retruns: string of length len * * r: (function) returns a random number with arguments: * max: max number * min: min number */ var pwd = { base : "1234567890qwertyuiopasdfghjklzxcvbnm", chars : { c1 : ["2","q"], c2 : ["1","q","w","3"], c3 : ["2","w","e","4"], c4 : ["3","e","r","5"], c5 : ["4","r","t","6"], c6 : ["5","t","y","7"], c7 : ["6","y","u","8"], c8 : ["7","u","i","9"], c9 : ["8","i","o","0"], c0 : ["9","o","p"], cq : ["1","2","w","s","a"], cw : ["2","3","e","s","a","q"], ce : ["3","4","r","d","s","w"], cr : ["4","5","t","f","d","e"], ct : ["5","6","y","g","f","r"], cy : ["6","7","u","h","g","t"], cu : ["7","8","i","j","h","y"], ci : ["8","9","o","k","j","u"], co : ["9","0","p","l","k","i"], cp : ["0","l","o"], ca : ["q","w","s","z"], cs : ["w","e","d","x","z","a"], cd : ["e","r","f","c","x","s"], cf : ["r","t","g","v","c","d"], cg : ["t","y","h","b","v","f"], ch : ["y","u","j","n","b","g"], cj : ["u","i","k","m","n","h"], ck : ["i","o","l","m","j"], cl : ["o","p","k"], cz : ["a","s","x"], cx : ["s","d","c","z"], cc : ["d","f","v","x"], cv : ["f","g","b","c"], cb : ["g","h","n","v"], cn : ["h","j","m","b"], cm : ["j","k","n"] }, special : ["!","@","#","$","%","&","/","(", ")","=","?","+",".",",",":",";","_","-"," "], gen : function(len,spec){ var xs=[]; var xi,xr; for(xi=0; xi<(len-spec); xi++) { if(xs.length<1) { xs[xs.length] = pwd.base.substr(pwd.r(pwd.base.length),1); continue; } xr = pwd.r(pwd.chars["c"+xs[xi-1]].length); xs[xs.length] = pwd.chars["c"+xs[xi-1]][xr]; } for(xi=0; xi<spec; xi++){ xr = pwd.r(xs.length); xs[xr] = xs[xr].toUpperCase(); xs.splice(xr,0,pwd.special[pwd.r(pwd.special.length)]); } return xs.join(""); }, r : function(max,min) { min = min || 0; return min + Math.floor(Math.random()*((max-min))); } }
You need to login to post a comment.
