Node.js verify.update(data[, inputEncoding]) 方法
verify.update() 方法是 Node.js 中 crypto 模块中 verify 类的内置方法。该方法用于验证给定数据中的内容。当未指定输入编码参数并且检测到数据为字符串时,将使用 ‘utf8’ 编码。然而,如果数据类型为 Buffer、TypedArray 或 DataView,则会忽略任何指定的输入编码。
语法:
verify.update(data, inputEncoding)
参数: 此方法接受如上所述的以下参数:
- data: 此参数定义了数据的类型,如字符串,TypeArray,缓冲区或数据视图。
- inputEncoding: 此参数定义了输入的编码类型。
返回值: 此方法不返回任何值。
示例1: 在此示例中,我们将看到如何使用更新方法来验证哈希。
const crypto = require('crypto');
const { privateKey, publicKey } =
crypto.generateKeyPairSync('rsa', {
modulusLength: 2048,
});
const sign = crypto.createSign('SHA256');
// Both strings should be same
sign.update('GeeksforGeeks');
sign.end();
const signature = sign.sign(privateKey);
const verify = crypto.createVerify('SHA256');
// Both strings should be same
verify.update('GeeksforGeeks');
verify.end();
console.log(verify.verify(publicKey, signature));
输出:
true
示例2: 在下面的示例中,我们正在更改数据的内容,然后我们将使用 verify.update() 方法验证数据的内容。
const crypto = require('crypto');
const { privateKey, publicKey } =
crypto.generateKeyPairSync('rsa', {
modulusLength: 2048,
});
const sign = crypto.createSign('SHA256');
// Both strings should be same
sign.update('GeeksforGeeks');
sign.end();
const signature = sign.sign(privateKey);
const verify = crypto.createVerify('SHA256');
// Both strings should be same
verify.update('GeeksforGeeks Not Same')
verify.end();
console.log(verify.verify(publicKey, signature));
输出:
false
参考: https://nodejs.org/api/crypto.html#verifyupdatedata-inputencoding