Skip to content

Instantly share code, notes, and snippets.

@sergeevabc
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sergeevabc/94bc806882b90926bd67 to your computer and use it in GitHub Desktop.
Save sergeevabc/94bc806882b90926bd67 to your computer and use it in GitHub Desktop.
BPasswd2 nobullshit edition (Original: https://github.com/bwalex/bpasswd)
<!DOCTYPE html>
<html>
<head>
<title>BPasswd2 nobullshit edition</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
/* normalize + pure */ article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class *="pure-u"]{font-family:sans-serif}.pure-u-1,.pure-u-1-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-5-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-2-24,.pure-u-3-24,.pure-u-4-24,.pure-u-5-24,.pure-u-6-24,.pure-u-7-24,.pure-u-8-24,.pure-u-9-24,.pure-u-10-24,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%;*width:4.1357%}.pure-u-1-12,.pure-u-2-24{width:8.3333%;*width:8.3023%}.pure-u-1-8,.pure-u-3-24{width:12.5%;*width:12.469%}.pure-u-1-6,.pure-u-4-24{width:16.6667%;*width:16.6357%}.pure-u-1-5{width:20%;*width:19.969%}.pure-u-5-24{width:20.8333%;*width:20.8023%}.pure-u-1-4,.pure-u-6-24{width:25%;*width:24.969%}.pure-u-7-24{width:29.1667%;*width:29.1357%}.pure-u-1-3,.pure-u-8-24{width:33.3333%;*width:33.3023%}.pure-u-3-8,.pure-u-9-24{width:37.5%;*width:37.469%}.pure-u-2-5{width:40%;*width:39.969%}.pure-u-5-12,.pure-u-10-24{width:41.6667%;*width:41.6357%}.pure-u-11-24{width:45.8333%;*width:45.8023%}.pure-u-1-2,.pure-u-12-24{width:50%;*width:49.969%}.pure-u-13-24{width:54.1667%;*width:54.1357%}.pure-u-7-12,.pure-u-14-24{width:58.3333%;*width:58.3023%}.pure-u-3-5{width:60%;*width:59.969%}.pure-u-5-8,.pure-u-15-24{width:62.5%;*width:62.469%}.pure-u-2-3,.pure-u-16-24{width:66.6667%;*width:66.6357%}.pure-u-17-24{width:70.8333%;*width:70.8023%}.pure-u-3-4,.pure-u-18-24{width:75%;*width:74.969%}.pure-u-19-24{width:79.1667%;*width:79.1357%}.pure-u-4-5{width:80%;*width:79.969%}.pure-u-5-6,.pure-u-20-24{width:83.3333%;*width:83.3023%}.pure-u-7-8,.pure-u-21-24{width:87.5%;*width:87.469%}.pure-u-11-12,.pure-u-22-24{width:91.6667%;*width:91.6357%}.pure-u-23-24{width:95.8333%;*width:95.8023%}.pure-u-1,.pure-u-1-1,.pure-u-5-5,.pure-u-24-24{width:100%}.pure-button{display:inline-block;*display:inline;zoom:1;line-height:normal;white-space:nowrap;vertical-align:baseline;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button{font-family:inherit;font-size:100%;*font-size:90%;*overflow:visible;padding:.5em 1em;color:#444;color:rgba(0,0,0,.8);*color:#444;border:1px solid #999;border:0 rgba(0,0,0,0);background-color:#E6E6E6;text-decoration:none;border-radius:2px}.pure-button-hover,.pure-button:hover,.pure-button:focus{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000', GradientType=0);background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:-moz-linear-gradient(top,rgba(0,0,0,.05) 0,rgba(0,0,0,.1));background-image:-o-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset}.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{border:0;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);filter:alpha(opacity=40);-khtml-opacity:.4;-moz-opacity:.4;opacity:.4;cursor:not-allowed;box-shadow:none}.pure-button-hidden{display:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-form input:not([type]){padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-form input[type=color]{padding:.2em .5em}.pure-form input[type=text]:focus,.pure-form input[type=password]:focus,.pure-form input[type=email]:focus,.pure-form input[type=url]:focus,.pure-form input[type=date]:focus,.pure-form input[type=month]:focus,.pure-form input[type=time]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=week]:focus,.pure-form input[type=number]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=color]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input:not([type]):focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus,.pure-form input[type=checkbox]:focus{outline:thin dotted #333;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=text][disabled],.pure-form input[type=password][disabled],.pure-form input[type=email][disabled],.pure-form input[type=url][disabled],.pure-form input[type=date][disabled],.pure-form input[type=month][disabled],.pure-form input[type=time][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=week][disabled],.pure-form input[type=number][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=color][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input:not([type])[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{color:#b94a48;border-color:#ee5f5b}.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{border-color:#e9322d}.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus,.pure-form input[type=checkbox]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=text],.pure-form-stacked input[type=password],.pure-form-stacked input[type=email],.pure-form-stacked input[type=url],.pure-form-stacked input[type=date],.pure-form-stacked input[type=month],.pure-form-stacked input[type=time],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=week],.pure-form-stacked input[type=number],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=color],.pure-form-stacked select,.pure-form-stacked label,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-stacked input:not([type]){display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.pure-form-aligned textarea{vertical-align:top}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 10em}.pure-form input.pure-input-rounded,.pure-form .pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input{display:block;padding:10px;margin:0;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus{z-index:2}.pure-form .pure-group input:first-child{top:1px;border-radius:4px 4px 0 0}.pure-form .pure-group input:last-child{top:-2px;border-radius:0 0 4px 4px}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:.875em}.pure-form-message{display:block;color:#666;font-size:.875em}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input:not([type]),.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form label{margin-bottom:.3em;display:block}.pure-group input:not([type]),.pure-group input[type=text],.pure-group input[type=password],.pure-group input[type=email],.pure-group input[type=url],.pure-group input[type=date],.pure-group input[type=month],.pure-group input[type=time],.pure-group input[type=datetime],.pure-group input[type=datetime-local],.pure-group input[type=week],.pure-group input[type=number],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=color]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0}.pure-form .pure-help-inline,.pure-form-message-inline,.pure-form-message{display:block;font-size:.75em;padding:.2em 0 .8em}}.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:0}.pure-menu a{border:1px solid transparent;border-left:0;border-right:0}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:0;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :-o-prefocus,.pure-paginator{word-spacing:-.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}@media (max-width:480px){.pure-menu-horizontal{width:100%}.pure-menu-children li{display:block;border-bottom:1px solid #000}}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}
/* tweaking */ *{font-family:monospace!important}body{position:absolute;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:#EDEADF}legend{font-weight:bold}button{font-size:125%}label,input,select,button,legend{line-height:1.4}#mkeyRevealer{display:none}#mkeyRevealer+label{display:inline-block;width:32px;height:32px;background-image:url('data:image/png;base64,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');background-repeat:no-repeat;background-position:top}#mkeyRevealer:checked+label{background-position:bottom}
</style>
</head>
<body>
<div>
<h1>9196532a2455aa55c3299217579a3a726af79c3e</h1>
<br>
<form id="gengengen" class="pure-form pure-form-aligned" onSubmit="return false">
<fieldset>
<legend>General</legend>
<div class="pure-control-group">
<label for="bpasswd-masterkey">Masterkey</label>
<input id="bpasswd-masterkey" class="pure-input-1-2" type="password" autocomplete="off" autocorrect="off" spellcheck="false" autofocus>
<input id="mkeyRevealer" type="checkbox" onClick="showMasterkey()"><label for="mkeyRevealer"></label>
<span id="isSameKey"></span>
</div>
<div class="pure-control-group">
<label for="bpasswd-salt">Resource</label>
<input id="bpasswd-salt" class="pure-input-1-2" type="text" autocomplete="off" autocorrect="off" spellcheck="false">
</div>
<div class="pure-control-group">
<label for="bpasswd-dkey">Password</label>
<input id="bpasswd-dkey" class="pure-input-1-2" type="text" autocomplete="off" onClick="this.select()" readonly>
</div>
<br>
<div class="pure-control-group">
<label for="bpasswd-derive-key"></label>
<button id="bpasswd-derive-key" class="pure-button pure-button-primary" onClick="generatePassword()">Generate</button>
&nbsp;&nbsp;<a href="javascript:clearForm()">Clear</a>
</div>
</fieldset>
<br>
<fieldset>
<legend>Password preferences</legend>
<div class="pure-control-group">
<label for="more_difficulty" class="pure-checkbox">Difficulty</label>
<input id="more_difficulty" type="checkbox" autocomplete="off" checked>
Add special symbols
</div>
<div class="pure-control-group">
<label for="more_max_len">Length</label>
<input id="more_max_len" type="number" class="pure-input-1-4" value="20" min="4" max="30" autocomplete="off" required>
</div>
<div class="pure-control-group">
<label for="more_cost">Cost</label>
<input id="more_cost" type="number" class="pure-input-1-4" value="10" min="2" max="30" autocomplete="off" required>
</div>
</fieldset>
</form>
</div>
<script type="text/javascript">
// Masterkey validation via unmasking or PIN instead of second input
// PIN: hash2hex, strip alphabet, split in 3-figure numbers, sum up, show last 3 digits after 0.8s
// Theory: https://ux.stackexchange.com/questions/36424/should-password-fields-have-an-unmask-checkbox
var mkeyInput = document.getElementById("bpasswd-masterkey"),
mkeyRevealer = document.getElementById("mkeyRevealer"),
isSameKeyOutput = document.getElementById("isSameKey"),
timer;
function showMasterkey() {
if(mkeyRevealer.checked){
mkeyInput.type="text";
} else {
mkeyInput.type="password";
}
}
mkeyInput.addEventListener("input", function() {
if (!!mkeyInput.value) {
clearTimeout(timer);
timer = setTimeout(verifyMasterkey.bind(this), 800);
} else {
isSameKeyOutput.innerHTML = "";
}
});
function verifyMasterkey() {
var mkeyHashNumbers = hex_sha1(mkeyInput.value).replace(/\D/g, '').match(/.{1,3}/g).map(Number);
for (var i = mkeyHashNumbers.length, mkeyHashNumbersSum = 0; i--;) {mkeyHashNumbersSum += mkeyHashNumbers[i];}
isSameKeyOutput.innerHTML = ("00" + mkeyHashNumbersSum).slice(-3);
}
// Password generation
function generatePassword() {
var masterkey = document.getElementById("bpasswd-masterkey").value,
salt = document.getElementById("bpasswd-salt").value,
cost = document.getElementById("more_cost").value,
max_len = document.getElementById("more_max_len").value,
gen_method = (document.getElementById("more_difficulty").checked == true) ? "z85" : "conservative",
dkey = BPasswd.generate(salt, masterkey, cost, gen_method).substring(0, max_len);
document.getElementById("bpasswd-dkey").value = dkey;
document.getElementById("bpasswd-dkey").focus();
document.getElementById("bpasswd-dkey").select();
}
// Bcrypt HMAC SHA256, for generating passwords from masterkey
// 19 Aug 2014 bpasswd/blob/master/dist/bpasswd.js
!function(e){if("object"==typeof exports){module.exports=e()}else{if("function"==typeof define&&define.amd){define(e)}else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.BPasswd=e()}}}(function(){var define,module,exports;return(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a){return a(o,!0)}if(i){return i(o,!0)}throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++){s(r[o])}return s})({1:[function(_dereq_,module,exports){(function(root,factory){if(typeof define==="function"&&define.amd){define(["blowfish"],factory)}else{if(typeof exports==="object"){module.exports=factory(_dereq_("./blowfish"))}else{root.BCrypt=factory(root.Blowfish)}}}(this,function(Blowfish){return function(){this.magic_=new Array(24);this.bfCtx_=undefined;for(var i=0;i<24;i++){this.magic_[i]="OrpheanBeholderScryDoubt".charCodeAt(i)}this.eksBlowfishSetup_=function(cost,salt,key){var n=1<<cost;this.bfCtx_=new Blowfish();this.bfCtx_.eksExpandKey(salt,key);for(var i=0;i<n;i++){this.bfCtx_.setup(key);this.bfCtx_.setup(salt)}};this.bcrypt=function(cost,salt,pwd){this.eksBlowfishSetup_(cost,salt,pwd);var ctext=this.magic_.slice();for(var i=0;i<64;i+=1){ctext=this.bfCtx_.encrypt(ctext)}return ctext}}}))},{"./blowfish":2}],2:[function(_dereq_,module,exports){(function(root,factory){if(typeof define==="function"&&define.amd){define(["enc_dec","crypto_helper"],factory)}else{if(typeof exports==="object"){module.exports=factory(_dereq_("./enc_dec"),_dereq_("./crypto_helper"))}else{root.Blowfish=factory(root.EncDec,root.CryptoHelper)}}}(this,function(EncDec,CryptoHelper){return function(pad){if(typeof(pad)==="undefined"){this.pad_=CryptoHelper.pads.none}else{this.pad_=pad}this.blockSize=function(){return 64};this.N_=16;this.P_=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731];this.S_=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,2909710000,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409000,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];this.F_=function(x){var a,b,c,d,y;d=x&255;c=(x>>>8)&255;b=(x>>>16)&255;a=(x>>>24)&255;y=this.S_[0][a]+this.S_[1][b];y^=this.S_[2][c];y+=this.S_[3][d];return y};this.encipher=function(xl,xr){var temp;for(var i=0;i<this.N_;i+=1){xl^=this.P_[i];xr^=this.F_(xl);temp=xl;xl=xr;xr=temp}temp=xl;xl=xr;xr=temp;xr^=this.P_[this.N_];xl^=this.P_[this.N_+1];return{xl:xl,xr:xr}};this.decipher=function(xl,xr){var temp;for(var i=this.N_+1;i>1;i-=1){xl^=this.P_[i];xr^=this.F_(xl);temp=xl;xl=xr;xr=temp}temp=xl;xl=xr;xr=temp;xr^=this.P_[1];xl^=this.P_[0];return{xl:xl,xr:xr}};this.transformECB_=function(inText,xform){if(inText.length%8!=0||typeof(xform)!=="function"){return undefined}inText=EncDec.word32.encode(inText);var inLen=inText.length;var out=[];for(var i=0;i<inLen;i+=2){var r=xform.call(this,inText[i],inText[i+1]);out=out.concat(EncDec.word32.decode([r.xl,r.xr]))}return out};this.encrypt=function(pt){pt=this.pad_.pad(pt.slice(),64);return this.transformECB_(pt,this.encipher)};this.decrypt=function(ct){pt=this.transformECB_(ct.slice(),this.decipher);return this.pad_.unpad(pt,64)};this.setup=function(key){var salt=new Array(16);for(var i=0;i<16;i+=1){salt[i]=0}this.eksExpandKey(salt,key)};this.eksExpandKey=function(salt,key){var data,datal,datar;var keybytes=key.length;var saltlr=EncDec.word32.encode(salt);var j;j=0;for(var i=0;i<this.N_+2;i+=1){data=0;for(var k=0;k<4;k+=1){data=(data<<8)|(key[j]&255);j+=1;if(j>=keybytes){j=0}}this.P_[i]^=data}j=0;datal=0;datar=0;for(var i=0;i<this.N_+2;i+=2){datal^=saltlr[j];datar^=saltlr[j+1];j+=2;if(j>=saltlr.length){j=0}var r=this.encipher(datal,datar);datal=r.xl;datar=r.xr;this.P_[i]=datal;this.P_[i+1]=datar}for(var i=0;i<4;i+=1){for(var k=0;k<256;k+=2){datal^=saltlr[j];datar^=saltlr[j+1];j+=2;if(j>=saltlr.length){j=0}var r=this.encipher(datal,datar);datal=r.xl;datar=r.xr;this.S_[i][k]=datal;this.S_[i][k+1]=datar}}}}}))},{"./crypto_helper":4,"./enc_dec":5}],3:[function(_dereq_,module,exports){(function(root,factory){if(typeof define==="function"&&define.amd){define(["bcrypt","hmac","enc_dec","sha256"],factory)}else{if(typeof exports==="object"){module.exports=factory(_dereq_("./bcrypt"),_dereq_("./hmac"),_dereq_("./enc_dec"),_dereq_("./sha256"))}else{root.BPasswd=factory(root.BCrypt,root.HMAC,root.EncDec,root.Sha256)}}}(this,function(BCrypt,HMAC,EncDec,Sha256){return{generate:function(salt,password,cost,gen_method,generation){if(typeof(cost)==="undefined"){cost=6}if(typeof(gen_method)==="undefined"){gen_method="base64"}if(typeof(generation)==="undefined"){generation=""}if(generation!=""&&generation!=0){salt+="@"+generation}var h=new HMAC(Sha256);var b=new BCrypt();var k=EncDec.ascii.decode(password);var s=EncDec.ascii.decode(salt);h.setup(Sha256.hash(k));s=h.encrypt(s);var c=b.bcrypt(cost,s,k);return EncDec[gen_method].encode(c)}}}))},{"./bcrypt":1,"./enc_dec":5,"./hmac":6,"./sha256":7}],4:[function(_dereq_,module,exports){(function(root,factory){if(typeof define==="function"&&define.amd){define(factory)}else{if(typeof exports==="object"){module.exports=factory()}else{root.CryptoHelper=factory()}}}(this,function(){return{add:function(a,b){var l=(a&65535)+(b&65535);var carry=(l>>>16)&1;var m=(a>>>16)+(b>>>16)+carry;return(m<<16)|(l&65535)},xor:function(a,b){var l=(a&65535)^(b&65535);var m=(a>>16)^(b>>16);return(m<<16)|(l&65535)},or:function(a,b){var l=(a&65535)|(b&65535);var m=(a>>>16)|(b>>>16);return(m<<16)|(l&65535)},pads:{pkcs7:{pad:function(pt,bsize){bsize/=8;var rem=pt.length%bsize;var nMissing=bsize;if(rem!=0){nMissing=bsize-rem}for(var i=0;i<nMissing;i+=1){pt.push(nMissing)}return pt},unpad:function(pt,bsize){var padBytes=pt[pt.length-1];return pt.slice(0,-padBytes)}},none:{pad:function(pt,bsize){return pt},unpad:function(pt,bsize){return pt}}}}}))},{}],5:[function(_dereq_,module,exports){(function(root,factory){if(typeof define==="function"&&define.amd){define(factory)}else{if(typeof exports==="object"){module.exports=factory()}else{root.EncDec=factory()}}}(this,function(){EncDec={};EncDec.none={encode:function(bytes){return bytes},decode:function(bytes){return bytes}};EncDec.word32={encode:function(bytes){var nWords=bytes.length/4;var words=new Array(nWords);if(bytes.length%4!=0){return undefined}for(var i=0;i<nWords;i+=1){var idx=4*i;words[i]=(bytes[idx+3]&255);words[i]|=(bytes[idx+2]&255)<<8;words[i]|=(bytes[idx+1]&255)<<16;words[i]|=(bytes[idx]&255)<<24}return words},decode:function(words){var nWords=words.length;var bytes=new Array(nWords*4);for(var i=0;i<nWords;i++){bytes[i*4]=(words[i]>>>24)&255;bytes[i*4+1]=(words[i]>>>16)&255;bytes[i*4+2]=(words[i]>>>8)&255;bytes[i*4+3]=(words[i])&255}return bytes}};EncDec.hex={encode:function(bytes){var hex="";var c;for(var i=0;i<bytes.length;i+=1){c=bytes[i].toString(16);hex+=(c.length==1)?"0"+c:c}return hex},decode:function(hex){var bytes=new Array(hex.length/2);if(hex.length%2!=0){return undefined}for(var i=0,j=0;i<hex.length;i+=2,j+=1){bytes[j]=parseInt(hex.substring(i,i+2),16)}return bytes}};EncDec.ascii={encode:function(bytes){var str="";for(var i=0;i<bytes.length;i+=1){str+=String.fromCharCode(bytes[i])}return str},decode:function(str){var bytes=new Array(str.length);for(var i=0;i<str.length;i+=1){bytes[i]=str.charCodeAt(i)}return bytes}};EncDec.base64={fwdTable_:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],revTable_:{},encode:function(bytes){var rem=3-bytes.length%3;var str="";if(rem!=3){for(var i=0;i<rem;i++){bytes.push(0)}}var chars=bytes.length/3;for(var i=0;i<chars;i++){var octets=0;octets|=((bytes[i*3+0]&255)<<16);octets|=((bytes[i*3+1]&255)<<8);octets|=((bytes[i*3+2]&255));str+=EncDec.base64.fwdTable_[(octets>>18)&63];str+=EncDec.base64.fwdTable_[(octets>>12)&63];str+=EncDec.base64.fwdTable_[(octets>>6)&63];str+=EncDec.base64.fwdTable_[(octets)&63]}if(rem!=3){str=str.substr(0,str.length-rem);for(var i=0;i<rem;i++){str+="="}}return str},decode:function(str){var bytes=[];var pad=0;var strLen=str.length;var nSextets=strLen/4;if(str.charAt(strLen-1)=="="){pad++}if(str.charAt(strLen-2)=="="){pad++}str=str.replace(/=/g,"A");for(var i=0;i<nSextets;i++){var octets=0;octets|=(EncDec.base64.revTable_[str.charAt(i*4+0)]<<18);octets|=(EncDec.base64.revTable_[str.charAt(i*4+1)]<<12);octets|=(EncDec.base64.revTable_[str.charAt(i*4+2)]<<6);octets|=(EncDec.base64.revTable_[str.charAt(i*4+3)]);bytes.push((octets>>16)&255);bytes.push((octets>>8)&255);bytes.push((octets)&255)}return(pad>0)?bytes.slice(0,-pad):bytes}};for(var i=0;i<64;i++){EncDec.base64.revTable_[EncDec.base64.fwdTable_[i]]=i}EncDec.conservative={fwdTable_:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","3","6"],encode:function(bytes){var rem=3-bytes.length%3;var str="";if(rem!=3){for(var i=0;i<rem;i++){bytes.push(0)}}var chars=bytes.length/3;for(var i=0;i<chars;i++){var octets=0;octets|=((bytes[i*3+0]&255)<<16);octets|=((bytes[i*3+1]&255)<<8);octets|=((bytes[i*3+2]&255));str+=EncDec.conservative.fwdTable_[(octets>>18)&63];str+=EncDec.conservative.fwdTable_[(octets>>12)&63];str+=EncDec.conservative.fwdTable_[(octets>>6)&63];str+=EncDec.conservative.fwdTable_[(octets)&63]}if(rem!=3){str=str.substr(0,str.length-rem);for(var i=0;i<rem;i++){str+="="}}return str}};EncDec.z85={fwdTable_:["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",".","-",":","+","=","^","!","/","*","?","&","<",">","(",")","[","]","{","}","@","%","$","#"],revTable_:{},encode:function(bytes){var size=bytes.length;var str="";for(var i=0;i<size;i+=4){var value=0;value|=((bytes[i+0]&255)<<24);value|=((bytes[i+1]&255)<<16);value|=((bytes[i+2]&255)<<8);value|=((bytes[i+3]&255));for(divisor=52200625;divisor>0;divisor=(divisor/85)>>>0){str+=EncDec.z85.fwdTable_[(((value>>>0)/divisor)>>>0)%85]}}return str},decode:function(str){var bytes=[];var strLen=str.length;var nBytes=strLen/5;for(var i=0;i<strLen;i+=5){var value=0;var divisor=52200625;for(var j=0;j<5;j++){value+=(EncDec.z85.revTable_[str.charAt(i+j)]*divisor)>>>0;divisor=(divisor/85)>>>0}bytes.push((value>>24)&255);bytes.push((value>>16)&255);bytes.push((value>>8)&255);bytes.push((value)&255)}return bytes}};for(var i=0;i<85;i++){EncDec.z85.revTable_[EncDec.z85.fwdTable_[i]]=i}return EncDec}))},{}],6:[function(_dereq_,module,exports){(function(root,factory){if(typeof define==="function"&&define.amd){define(factory)}else{if(typeof exports==="object"){module.exports=factory()}else{root.HMAC=factory()}}}(this,function(){return function(hash){this.hash_=hash;this.blockSize_=hash.blockSize();this.ipad_=new Array(this.blockSize_);this.opad_=new Array(this.blockSize_);for(var i=0;i<this.blockSize_;i+=1){this.ipad_[i]=54;this.opad_[i]=92}this.xorPad_=function(k,pad){var len=Math.min(k.length,pad.length);var o=pad.slice();for(var i=0;i<len;i++){o[i]^=k[i]&255}return o};this.setup=function(k){if(k.length>this.blockSize_){k=this.hash_.hash(k)}this.ipadK_=this.xorPad_(k,this.ipad_);this.opadK_=this.xorPad_(k,this.opad_)};this.encrypt=function(m){var h1=this.hash_.hash(this.ipadK_.slice().concat(m));var h2=this.hash_.hash(this.opadK_.slice().concat(h1));return h2};this.blockSize=function(){return this.hash_.digestSize()}}}))},{}],7:[function(_dereq_,module,exports){(function(root,factory){if(typeof define==="function"&&define.amd){define(["enc_dec"],factory)}else{if(typeof exports==="object"){module.exports=factory(_dereq_("./enc_dec"))}else{root.Sha256=factory(root.EncDec)}}}(this,function(EncDec){var Sha256={};Sha256.hash=function(msg){var K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var H=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];msg=msg.slice();msg.push(128);var l=msg.length/4+2;var N=Math.ceil(l/16);var M=new Array(N);for(var i=0;i<N;i++){M[i]=new Array(16);for(var j=0;j<16;j++){M[i][j]=(msg[i*64+j*4]<<24)|(msg[i*64+j*4+1]<<16)|(msg[i*64+j*4+2]<<8)|(msg[i*64+j*4+3])}}M[N-1][14]=((msg.length-1)*8)/Math.pow(2,32);M[N-1][14]=Math.floor(M[N-1][14]);M[N-1][15]=((msg.length-1)*8)&4294967295;var W=new Array(64);var a,b,c,d,e,f,g,h;for(var i=0;i<N;i++){for(var t=0;t<16;t++){W[t]=M[i][t]}for(var t=16;t<64;t++){W[t]=(Sha256.sigma1(W[t-2])+W[t-7]+Sha256.sigma0(W[t-15])+W[t-16])&4294967295}a=H[0];b=H[1];c=H[2];d=H[3];e=H[4];f=H[5];g=H[6];h=H[7];for(var t=0;t<64;t++){var T1=h+Sha256.Sigma1(e)+Sha256.Ch(e,f,g)+K[t]+W[t];var T2=Sha256.Sigma0(a)+Sha256.Maj(a,b,c);h=g;g=f;f=e;e=(d+T1)&4294967295;d=c;c=b;b=a;a=(T1+T2)&4294967295}H[0]=(H[0]+a)&4294967295;H[1]=(H[1]+b)&4294967295;H[2]=(H[2]+c)&4294967295;H[3]=(H[3]+d)&4294967295;H[4]=(H[4]+e)&4294967295;H[5]=(H[5]+f)&4294967295;H[6]=(H[6]+g)&4294967295;H[7]=(H[7]+h)&4294967295}return EncDec.word32.decode(H)};Sha256.blockSize=function(){return 64};Sha256.digestSize=function(){return 256};Sha256.ROTR=function(n,x){return(x>>>n)|(x<<(32-n))};Sha256.Sigma0=function(x){return Sha256.ROTR(2,x)^Sha256.ROTR(13,x)^Sha256.ROTR(22,x)};Sha256.Sigma1=function(x){return Sha256.ROTR(6,x)^Sha256.ROTR(11,x)^Sha256.ROTR(25,x)};Sha256.sigma0=function(x){return Sha256.ROTR(7,x)^Sha256.ROTR(18,x)^(x>>>3)};Sha256.sigma1=function(x){return Sha256.ROTR(17,x)^Sha256.ROTR(19,x)^(x>>>10)};Sha256.Ch=function(x,y,z){return(x&y)^(~x&z)};Sha256.Maj=function(x,y,z){return(x&y)^(x&z)^(y&z)};return Sha256}))},{"./enc_dec":5}]},{},[3])(3)});
// SHA1, for visual validation of masterkey only
// 2.2 pajhome.org.uk
function hex_sha1(r){return rstr2hex(rstr_sha1(str2rstr_utf8(r)))}function rstr_sha1(r){return binb2rstr(binb_sha1(rstr2binb(r),8*r.length))}function rstr2hex(r){try{}catch(t){hexcase=0}for(var a,n=hexcase?"0123456789ABCDEF":"0123456789abcdef",e="",f=0;f<r.length;f++)a=r.charCodeAt(f),e+=n.charAt(a>>>4&15)+n.charAt(15&a);return e}function str2rstr_utf8(r){for(var t,a,n="",e=-1;++e<r.length;)t=r.charCodeAt(e),a=e+1<r.length?r.charCodeAt(e+1):0,t>=55296&&56319>=t&&a>=56320&&57343>=a&&(t=65536+((1023&t)<<10)+(1023&a),e++),127>=t?n+=String.fromCharCode(t):2047>=t?n+=String.fromCharCode(192|t>>>6&31,128|63&t):65535>=t?n+=String.fromCharCode(224|t>>>12&15,128|t>>>6&63,128|63&t):2097151>=t&&(n+=String.fromCharCode(240|t>>>18&7,128|t>>>12&63,128|t>>>6&63,128|63&t));return n}function rstr2binb(r){for(var t=Array(r.length>>2),a=0;a<t.length;a++)t[a]=0;for(var a=0;a<8*r.length;a+=8)t[a>>5]|=(255&r.charCodeAt(a/8))<<24-a%32;return t}function binb2rstr(r){for(var t="",a=0;a<32*r.length;a+=8)t+=String.fromCharCode(r[a>>5]>>>24-a%32&255);return t}function binb_sha1(r,t){r[t>>5]|=128<<24-t%32,r[(t+64>>9<<4)+15]=t;for(var a=Array(80),n=1732584193,e=-271733879,f=-1732584194,h=271733878,o=-1009589776,s=0;s<r.length;s+=16){for(var d=n,i=e,_=f,u=h,c=o,b=0;80>b;b++){a[b]=16>b?r[s+b]:bit_rol(a[b-3]^a[b-8]^a[b-14]^a[b-16],1);var C=safe_add(safe_add(bit_rol(n,5),sha1_ft(b,e,f,h)),safe_add(safe_add(o,a[b]),sha1_kt(b)));o=h,h=f,f=bit_rol(e,30),e=n,n=C}n=safe_add(n,d),e=safe_add(e,i),f=safe_add(f,_),h=safe_add(h,u),o=safe_add(o,c)}return Array(n,e,f,h,o)}function sha1_ft(r,t,a,n){return 20>r?t&a|~t&n:40>r?t^a^n:60>r?t&a|t&n|a&n:t^a^n}function sha1_kt(r){return 20>r?1518500249:40>r?1859775393:60>r?-1894007588:-899497514}function safe_add(r,t){var a=(65535&r)+(65535&t),n=(r>>16)+(t>>16)+(a>>16);return n<<16|65535&a}function bit_rol(r,t){return r<<t|r>>>32-t}var hexcase=0,b64pad="";
// Misc
function clearForm() {
document.getElementById("gengengen").reset();
document.getElementById("isSameKey").innerHTML = "";
document.getElementById("bpasswd-masterkey").focus();
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment