Object 內建對象

物件Digest

資訊摘要對象

可以這樣使用Digest 物件:

1 2 3 4 5 6 7 8 9 10 11 12 13
const crypto = require('crypto'); // create a SHA-512 digest object const digest = crypto.createHash('sha512'); // update digest with data digest.update('hello'); digest.update('world'); // get digest result const result = digest.digest(); console.log(result); // output result in hex and base64 console.log(result.toString('hex')); console.log(result.toString('base64'));

在上述程式碼中,使用crypto.createHash()方法建立了一個SHA-512 摘要運算對象,可以透過update()方法逐步新增要進行摘要的數據,並透過digest()方法取得摘要結果。

繼承關係

成員屬性

size

Integer, 查詢目前資訊摘要演算法的摘要位元組數

1
readonly Integer Digest.size;

成員函數

update

更新二進位摘要信息

1
Digest Digest.update(Buffer data);

呼叫參數:

  • data:Buffer, 二進位資料塊

回傳結果:

  • Digest, 傳回資訊摘要物件本身

更新字串摘要訊息

1 2
Digest Digest.update(String data, String codec = "utf8");

呼叫參數:

  • data: String, 字串數據
  • codec: String, 指定編碼格式,允許值為:"buffer", "hex", "base32", "base58", "base64", "utf8", 或者iconv模組支援的字元集

回傳結果:

  • Digest, 傳回資訊摘要物件本身

digest

計算並返回摘要

1
Value Digest.digest(String codec = "buffer");

呼叫參數:

  • codec: String, 指定編碼格式,允許值為:"buffer", "hex", "base32", "base58", "base64", "utf8", 或者iconv模組支援的字元集

回傳結果:

  • Value, 傳回指定編碼的摘要表示

sign

簽名並返回摘要

1 2
Buffer Digest.sign(PKey key, Object opts = {}) async;

呼叫參數:

  • key:PKey, 簽署的私鑰
  • opts: Object, 指定簽名選項

回傳結果:

  • Buffer, 回傳簽名後的數據

opts 支援以下參數:

1 2 3 4 5 6 7 8 9 10
{ alg: 0 指定签名的 hash 算法, 仅在 RSA 时有效, 缺省为 0. 支持算法: 0 = NONE, 1 = MD5, 2 = SHA1, 3 = SHA224, 4 = SHA256, 5 = SHA384, 6 = SHA512, 7 = RIPEMD160 }

verify

驗證簽名是否一致

1 2 3
Boolean Digest.verify(PKey key, Buffer sign, Object opts = {}) async;

呼叫參數:

  • key:PKey, 驗證簽署的公鑰
  • sign:Buffer, 指定要驗證的簽名
  • opts: Object, 指定驗證選項

回傳結果:

  • Boolean, 回傳驗證後的結果

opts 支援以下參數:

1 2 3 4 5 6 7 8 9 10
{ alg: 0 指定签名的 hash 算法, 仅在 RSA 时有效, 缺省为 0. 支持算法: 0 = NONE, 1 = MD5, 2 = SHA1, 3 = SHA224, 4 = SHA256, 5 = SHA384, 6 = SHA512, 7 = RIPEMD160 }

toString

傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現

1
String Digest.toString();

回傳結果:

  • String, 傳回物件的字串表示

toJSON

傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合

1
Value Digest.toJSON(String key = "");

呼叫參數:

  • key: String, 未使用

回傳結果:

  • Value, 傳回包含可JSON 序列化的值