<style> .jsPassGenWrapper { width:300px; height:180px; padding:10px; border:1px solid #aaa; } .jsPassGenWrapper #jsPassGenForm { float:left; width:50%; font-size:16px; font-family:Courier, serif; } .jsPassGenWrapper .jsPassGenCtrls { float:right; width:50%; margin-top:100px; } .jsPassGenWrapper input { padding:0px 10px; } </style> <div class="jsPassGenWrapper"> <div id="jsPassGenForm"></div> <div class="jsPassGenCtrls"> <input type="checkbox" id="jsPassGenUseNumsCB" checked="checked" /> <label for="jsPassGenUseNumsCB">Use numbers</label><br /> <input type="button" value="Create password" onClick="runPassGen()" /> </div> <script type="text/javascript"> /* @param id - ) @param syllableNum - @param numPass - @param useNums - */ function jsPassGen(id, syllableNum, numPass, useNums) { id = typeof(id) != 'undefined' ? id : 'jsPassGenForm'; // syllableNum = typeof(syllableNum) != 'undefined' ? syllableNum : 3; numPass = typeof(numPass) != 'undefined' ? numPass : 10; useNums = typeof(useNums) != 'undefined' ? useNums : true; function rand(from, to) { from = typeof(from) != 'undefined' ? from : 0; // to = typeof(to) != 'undefined' ? to : from + 1; // return Math.round(from + Math.random()*(to - from)); }; function getRandChar(a) { return a.charAt(rand(0,a.length-1)); } var form = document.getElementById(id); // var cCommon = "bcdfghklmnprstvz"; var cAll = cCommon + "jqwx"; // var vAll = "aeiouy"; // var lAll = cAll + vAll; // form.innerHTML = ""; for(var j = 0; j < numPass; ++j) { // var numProb = 0, numProbStep = 0.25; for(var i = 0; i < syllableNum; ++i) { if(Math.round(Math.random())) { form.innerHTML += getRandChar(cCommon).toUpperCase() + getRandChar(vAll) + getRandChar(lAll); } else { form.innerHTML += getRandChar(vAll).toUpperCase() + getRandChar(cCommon); } if(useNums && Math.round(Math.random() + numProb)) { form.innerHTML += rand(0,9); numProb += numProbStep; } } form.innerHTML += "<br />"; } return false; } function runPassGen() { jsPassGen('jsPassGenForm', 3, 10, jsPassGenUseNumsCB.checked); } runPassGen(); </script> </div>
password.nanohertz.net
genpas.narod.ru
pwgen-win.sourceforge.net
genpas.ru
mbeaver.narod.ru/nicks
Sicness # :
the idea reduces the entropy of the password and, as a result, is not worth using everywhere.
docomo # :
... The password generated on js is offered to the user as one of the options directly in the registration form, while the password created on the server is forced.
gonzazoid # :
IMHO of the most memorable techniques most reliable - the technique of shocking absurdity. Mollusc passwords have bitten off my dancing genitals. I repeat - it is from memorized. Described here www.ozon.ru/context/detail/id/855490
Source: https://habr.com/ru/post/108509/
All Articles