npm 包 ethjs-signer 使用教程

阅读时长 5 分钟读完

在以太坊的开发中,我们常常需要使用到加密和解密的操作。ethjs-signer 便是一个 npm 包,它提供了一系列方便的加密和解密方法,方便我们在以太坊应用中进行签名,验证签名,加密和解密操作。本文将详细介绍 ethjs-signer 的使用教程。

安装

使用 npm 包管理器即可方便的进行安装:

签名

我们先来看一个简单的签名操作:

-- -------------------- ---- -------
----- --- - -----------------
----- --------- - ------------------------

----- ------- - ------ -------
----- ---------- - ---------------------------------------------------------------------
----- --- - --- ------- -------------------------------------------
----- ------- - ------------------- ------------

------------------- ---------- ---------

这里我们使用了 ethjs 和 ethjs-signer 包,对于 const message,它是要被签名的信息;对于 const privateKey,它是区块链地址对应的私钥。使用 EthSigner.sign 方法即可完成签名的操作,返回签名后的地址。

验证签名

验证签名的操作通常会用到签名、原始消息和签名后的地址。这里我们用到了一个别名 hexToBytes 以将原始消息转换成 buffer。

-- -------------------- ---- -------
----- --- - -----------------
----- --------- - ------------------------

----- ------- - ------ -------
----- ---------- - ---------------------------------------------------------------------
----- --- - --- ------- -------------------------------------------
----- ------- - ------------------- ------------

----- --------- - -------------------------------------------------------------- ------- ------------
----- - - ------------------ ----
----- - - ------------------- ----
----- - - --------------

----- ----------------- - ------------------------
----- ----------------- - -------------------------------------------

------------------- ------- -- -------- --------------------------------------------- -- -- -- ----------

使用 EthSigner.signMsgHash 方法进行签名,这个方法会按照以太坊标准将签名后的信息格式化为 r, s, v 形式。然后使用 EthSigner.isValidSignature 方法校验签名是否正确。

加密和解密

最后,我们看一下如何使用 ethjs-signer 进行加密和解密的操作。

-- -------------------- ---- -------
----- --- - -----------------
----- --------- - ------------------------

----- ------- - ------ -------
----- ---------- - ---------------------------------------------------------------------
----- --- - --- ------- -------------------------------------------
----- ------- - ------------------- ------------

----- ------- - ----------------------------- ---------------------------

----- --------- - -------------------------- ----------------------------------------------------------------------

---------------------- ---------- -----------

----- --------- - ---------------------------- ------------

----- ------- - ----------------------------- --- -------------------------- -----------

---------------------- ---------- ---------

这里我们使用了 ethjs 和 ethjs-signer 包,对于 const encoded,它是要被加密的消息。使用 Eth.ABI.rawEncode 方法可以方便的将任意类型的信息编码为 hex 形式。使用 EthSigner.encrypt 方法将加密信息发送给特定的区块链地址。使用 EthSigner.decrypt 方法可以将信息解密,并使用 Eth.ABI.rawDecode 方法解码信息。

总结

通过本文我们了解了 ethjs-signer 这个 npm 包的使用方法以及相应的签名、验证签名、加密和解密操作。这个包在以太坊开发中提供了方便的功能。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/57440

纠错
反馈