From 9454bfd5a0d7180a34e58e266a5df3bd340940b9 Mon Sep 17 00:00:00 2001 From: Luk Lu Date: Thu, 27 Feb 2020 12:39:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=B8=AAbug:=20isAd?= =?UTF-8?q?dress()=E9=87=8C=E6=AF=94=E7=89=B9=E5=B8=81=E9=95=BF=E5=BA=A6?= =?UTF-8?q?=E4=B8=8D=E5=8F=AF=E8=83=BD=E4=B8=BA32=EF=BC=8C=E5=90=A6?= =?UTF-8?q?=E5=88=99=E4=BC=9A=E5=92=8CTIC=E5=9C=B0=E5=9D=80=E5=86=B2?= =?UTF-8?q?=E7=AA=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index f0a6f30..c8feb72 100644 --- a/index.js +++ b/index.js @@ -152,7 +152,7 @@ module.exports = { let signer=crypto.createSign(hasher) signer.update(this.hash(data, option)).end() let signature = signer.sign(seckeyPEM, 'hex') - return signature // 发现同样的输入,每次调用会生成不同的 signature, 且长度不定(140,142,144 hex) 但都可以通过 verify。 + return signature // 发现同样的输入,nodejs里每次调用会生成不同的 signature, 且长度不定(140,142,144 hex) 但都可以通过 verify。但在浏览器里调用,signature却是固定的。 }else if (option.tool==='nacl') { // 这样不行,无法和verify共享一套公私钥。 // let naclSeckey = this.buf2hex(nacl.sign.keyPair.fromSeed(seckey).seckey) @@ -185,7 +185,7 @@ module.exports = { // let naclPubkey = nacl.sign.keyPair.fromSeed() }else { // 默认使用 eccrypto try { - await eccrypto.verify(Buffer.from(pubkey, 'hex'), this.hash(data, {output:'buf'}), Buffer.from(signature, 'hex')) // 如果给signature添加1位hex,eccrypto 的 verify结果也是true! 估计因为一位hex不被转成字节。 + let result = await eccrypto.verify(Buffer.from(pubkey, 'hex'), this.hash(data, {output:'buf'}), Buffer.from(signature, 'hex')) // 如果给signature添加1位hex,eccrypto 的 verify结果也是true! 估计因为一位hex不被转成字节。 return true }catch(exception){ return false @@ -426,7 +426,7 @@ module.exports = { isAddress(address){ if (/^(0x)?[\da-fA-F]{40}$/.test(address)){ return 'ETH' - }else if (/^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{26,34}$/.test(address)){ // 格式合法 + }else if (/^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{26,34}$/.test(address) && address.length!==32){ // 格式合法。常见的是 33或34字符长度 let prefixedPosition = this.b58c2hex(address) if (prefixedPosition && prefixedPosition.length===42) // 内容合法 return 'BTC'