当初次使用 tokenPocket ( tp 钱包)的时候,你可能会发现,注册完账号后,它默认是需要填写一个交易密码的,有的人心急,就随便填写了一个,想着后面再改,谁知后面要改的时候,才发现,重置或者修改密码是有条件的。
通过助记词
tp 钱包app 提供了重置密码的模块,但是需要用该账号的助记词来验证,大多数情况下你都是有助记词的,所以直接输入助记词即可设置新密码,但是如果刚好,你新注册的钱包还没来得及备份助记词,那这个方法就没法用了。
修改密码
除了通过助记词,还可以用旧密码来验证,如果你记得设置的密码,就可以用旧密码作为验证来设置新密码,不过一般都是旧密码忘记了,才会来想办法设置新密码。。所以这个实际场景下没啥用。
指纹支付
如果怕忘记密码,可以开启指纹支付功能,这个是需要手动来开启的,在注册完钱包后,打开钱包详情页面,就看到指纹支付入口,设置以后,就不需要用密码来验证支付了,也不怕忘记密码了。
如果刚好忘记了助记词和密码怎么办?
有的倒霉鬼,粗心大意的,对新注册的钱包还没来得及备份助记词,就把密码也忘记了,里面的资产就转不出来了,很多人就是这样永远的丢失了数字资产。
其实,对于这种情况,还不到彻底死心的地步,虽然常规的方法没提供找到、重置密码的方法,但是如果懂技术,用 python 等程序脚本,还可以暴力破解尝试所有可能的密码,通过这种途径,也有找到密码的可能。
技术破解提供一个思路
首先要用代码逆向抓包等技术,获取加密 hash,并找到密码加密和解密的算法, 然后用专业的hash 解密工具和设备进行暴力穷举。
示例代码:
function a(e, t) {
var r = i.utf8ToBuffer(e); // e 是码
var o = i.base64ToBuffer(t); // t 是 salt
return global.crypto.subtle.importKey(
"raw",
r,
{ name: "PBKDF2" },
false,
["deriveBits", "deriveKey"]
).then(function(e) {
return global.crypto.subtle.deriveKey(
{
name: "PBKDF2",
salt: o,
iterations: 10000,
hash: "SHA-256"
},
e,
{
name: "AES-GCM",
length: 256
},
false,
["encrypt", "decrypt"]
);
});
}
总结
对大多数去中心化钱包而言,密码没多大意义,并且丢失后,很难找回,所以平常要细心一些,注意保护好自己的密码哦。