1+ <!doctype html>
2+ < html >
3+
4+ < head >
5+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6+ < title > scrypt-async-js demo</ title >
7+ < style >
8+ html ,
9+ body {
10+ font-family : sans-serif;
11+ }
12+
13+ # out {
14+ padding : 10px 0 ;
15+ }
16+
17+ # N {
18+ margin-left : 10px ;
19+ color : # aaa ;
20+ }
21+ </ style >
22+ </ head >
23+
24+ < body >
25+ < h1 > < a href ="https://github.com/dchest/scrypt-async-js "> scrypt-async-js</ a > demo</ h1 >
26+ < form onsubmit ="calculate(); return false ">
27+ < p > Password: < input name ="password " type ="text " value ="password " size ="32 "> </ p >
28+ < p > Salt: < input name ="salt " type ="text " value ="salt " size ="32 "> </ p >
29+ < p > interruptStep: < input name ="interruptStep " type ="text " value ="0 " size ="8 "> </ p >
30+ < p > logN: < input name ="logN " type ="text " value ="11 " size ="4 " onkeypress ="updateN() "
31+ onchange ="updateN() " onkeyup ="updateN() "
32+ onblur ="updateN() "> < span id ="N "> </ p >
33+ < p > r: < input name ="r " type ="text " value ="8 " size ="4 "> </ p >
34+ < p > p: < input name ="p " type ="text " value ="1 " size ="4 "> </ p >
35+ < input type ="submit " name ="btn " value ="Calculate " />
36+ </ form >
37+ < div id ="out "> </ div >
38+
39+ < script src ="scrypt-async.js "> </ script >
40+ < script >
41+ var f = document . forms [ 0 ] ;
42+
43+ function updateN ( ) {
44+ var fN = document . querySelector ( '#N' ) ;
45+ var logN = f . logN . value ;
46+ fN . innerHTML = 'N = ' + Math . pow ( 2 , logN ) ;
47+ }
48+
49+ function calculate ( ) {
50+
51+ var btn = f . btn ;
52+ var out = document . querySelector ( '#out' ) ;
53+
54+ var password = f . password . value ;
55+ var salt = f . salt . value ;
56+ var interruptStep = f . interruptStep . value ;
57+ var logN = f . logN . value ;
58+ var r = f . r . value ;
59+ var p = f . p . value ;
60+
61+ btn . disabled = true ;
62+ btn . value = 'Wait...' ;
63+
64+ window . setTimeout ( function ( ) {
65+ try {
66+ var t1 = ( new Date ( ) ) . getTime ( ) ;
67+ scrypt ( password , salt , {
68+ logN : logN ,
69+ r : r ,
70+ p : p ,
71+ dkLen : 32 ,
72+ interruptStep : interruptStep ,
73+ encoding : 'hex'
74+ } ,
75+ function ( res ) {
76+ var t2 = ( ( new Date ( ) ) . getTime ( ) - t1 ) ;
77+ out . innerHTML = 'scrypt: <b>' + t2 + ' ms</b> ' + res + '' ;
78+ btn . disabled = false ;
79+ btn . value = 'Calculate' ;
80+ } ) ;
81+ } catch ( ex ) {
82+ out . innerHTML = '<span style="color:red">error: ' + ex . message + '</span>' ; btn . disabled = false ; btn . value = 'Calculate' ;
83+ } } ) ; } updateN ( ) ;
84+ </ script >
85+ </ body >
86+
87+ </ html >
0 commit comments