Password Generator
by vovkasolovev
HTML
<div id="sec_options">
<div class="chboxl">Password Length:</div>
<div class="chboxr">
<select id="pgLength" onclick="SaveOptions( false );">
<optgroup label="Weak">
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
</optgroup>
<optgroup label="Strong">
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
</optgroup>
</select>
</div>
<div class="chboxl">Include Numbers:</div>
<div class="chboxr"><label><input type="checkbox" name="Numbers" id="Numbers" onclick="SaveOptions( false );">( e.g. 123456 )</label></div>
<div class="chboxl">Include Lowercase Characters:</div>
<div class="chboxr"><label><input type="checkbox" name="Lowercase" id="Lowercase" onclick="SaveOptions( false );">( e.g. abcdefgh...
JavaScript
function SelectAll(id)
{
$(id).focus();
$(id).select();
}
function OnCopy()
{
var copyText = $("final_pass");
copyText.select();
copyText.setSelectionRange(0, 99999); /*For mobile devices*/
document.execCommand("copy");
}
function auto_grow( element )
{
element.style.height = "5px";
element.style.height = (element.scrollHeight + 10 )+"px";
}
function MakePhonetic( szPassword )
{
var theWords = [ "ace", "best", "coffee", "drip", "egg", "fruit", "golf", "hi", "ice", "jack", "korean", "loft", "music", "nut", "omelet", "park", "queen", "rope", "sound", "top", "up", "video", "walmart", "x", "you", "zip" ];
var szPhonetic = "";
for( var i = 0; i < szPassword.length; i++ )
{
var c = szPassword.charCodeAt( i );
if( 65 <= c && c <= 90 )
{
c -= 65;
szPhonetic += theWords[ c ].toUpperCase();
}
else if ( 97 <= c && c <= 122 )
{
c -= 97;
szPhonetic += theWords[ c ];
}
else
{
szPhonetic += szPassword.substring( i, i + 1 );
}
szPhonetic+=" ";
}
return szPhonetic;
}
function InsertChar( szCharSet, nBufferLength, szBuffer )
{
var bAllUnique = $( "AllUniqueC" ).checked;
if( bAllUnique == false )
{
var nPos = Math.floor( Math.random() * szCharSet.length );
var nInsertPos = Math.floor( Math.random() * nBufferLength );
var szSwap = szBuffer.substring( 0, nInsertPos ) + szCharSet.substring( nPos, nPos+1 ) + szBuffer.substring( nInsertPos, nBufferLength );
szBuffer = szSwap;
return szBuffer;
}
var szSwap = "";
var szCharSetCopy = szCharSet;
while( true )
{
if( szCharSetCopy.length == 0 )
{
break;
}
var nPos = Math.floor( Math.random() * szCharSetCopy.length );
var szNewTmp = szCharSetCopy.substring( nPos, nPos+1 );
var nTmp = szBuffer.indexOf( szNewTmp );
if( nTmp == -1 )
{
var nInsertPos = Math.floor( Math.random() * nBufferLength );
szSwap = szBuffer.substring( 0, nInsertPos ) + szNewTmp + szBuffer.substring( nInsertPos,...