/
reset_pwd.html
132 lines (131 loc) · 4.44 KB
/
reset_pwd.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1,maximum-scale=1, minimum-scale=1">
<link rel="stylesheet" href="css/mui.min.css">
<link rel="stylesheet" href="css/unified.css">
<link rel="stylesheet" href="css/walletCurr.css">
<script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/rem.js"></script>
<script src="js/mui.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/vue.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/public.js" type="text/javascript" charset="utf-8"></script>
<title>修改密码</title>
</head>
<body>
<div class="setEalletWrapper" id="app">
<div class="unContent">
<div class="content">
<ul>
<li class="flex-box">
<span>原始密码</span>
<input class="box-1" v-model='old_pwd' type="password" placeholder="请输入原始密码">
</li>
<li class="flex-box">
<span>设置密码</span>
<input class="box-1" v-model='new_pwd' type="password" placeholder="请设置新密码">
</li>
<li class="flex-box">
<span>重复密码</span>
<input class="box-1" v-model='re_pwd' type="password" placeholder="请再次输入密码">
</li>
</ul>
<div class="swBtn">
<a class="btn-ui sw-btn-1" @tap='doSub'>确定</a>
</div>
</div>
</div>
</div>
</body>
<script src="wallet/web3.min.js" type="text/javascript" charset="utf-8"></script>
<script src="wallet/lightwallet.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var vm = new Vue({
el: '#app',
data: {
old_pwd:'',
new_pwd:'',
re_pwd:'',
},
methods: {
doSub:function(){
if(!this.old_pwd){
mui.toast('请输入原始密码');return;
}
if(!this.new_pwd){
mui.toast('请设置新密码');return;
}
if(!this.re_pwd){
mui.toast('请确认新密码');return;
}
if(this.new_pwd!=this.re_pwd){
mui.toast('两次密码不同');return;
}
var _self = this;
plus.nativeUI.showWaiting('原始密码验证中');
var ks = getItem('walletInfo').ks;
try{
var mneKeystore = lightwallet.keystore.deserialize(JSON.stringify(ks));
mneKeystore.keyFromPassword(_self.old_pwd, (err, pwDerivedKey) => {
plus.nativeUI.closeWaiting();
if(err){
plus.nativeUI.toast('原始密码验证失败');
}else{
plus.nativeUI.showWaiting('新密码设置中');
try{
var seed = mneKeystore.getSeed(pwDerivedKey);
}catch(err){
plus.nativeUI.closeWaiting();
plus.nativeUI.toast('原始密码验证失败');
return;
}
lightwallet.keystore.createVault(
{
password: _self.new_pwd,
seedPhrase: seed,
hdPathString: "m/44'/60'/0'/0"
},(err, ks) => {
plus.nativeUI.closeWaiting();
if(err){
plus.nativeUI.toast('密码设置失败');
}else{
_self.createAddress(ks);
}
}
);
}
});
}catch(err){
plus.nativeUI.closeWaiting();
plus.nativeUI.toast('原始密码验证失败');
}
},
createAddress:function(ks){
var _self = this;
try{
ks.keyFromPassword(_self.new_pwd, function (err, pwDerivedKey) {
ks.generateNewAddress(pwDerivedKey, 1);
var addresses = ks.getAddresses();
var pkey = '0x' + ks.exportPrivateKey(addresses[0], pwDerivedKey);
var web3 = initWeb3();
var keystoreV3 = web3.eth.accounts.privateKeyToAccount(pkey).encrypt(_self.new_pwd);
setItem('walletInfo',{
walletAddress: addresses[0],
keystoreV3: keystoreV3,
ks: ks
});
plus.nativeUI.closeWaiting();
plus.nativeUI.alert('密码修改成功',function(){
mui.back();
});
});
}catch(e){
plus.nativeUI.closeWaiting();
plus.nativeUI.toast('密码设置失败');
}
}
}
})
</script>
</html>