Node.js sign.update(data[, inputEncoding]) 方法

Node.js sign.update(data[, inputEncoding]) 方法

在本文中,我们将讨论NodeJS中crypto模块中的sign类的sign.update()方法。此方法使用给定的数据和输入编码更新签名内容。如果提供的数据对象是缓冲区、TypeArray或DataView,则忽略任何给定的inputEncoding参数。

语法:

sign.update(data, inputEncoding)

参数: 方法有两个以上提到的参数。

  • data: 指定的数据类型,可以是字符串、缓冲区、类型数组或数据视图类型。
  • inputEncoding: 指定数据的编码类型,是一个可选参数。

返回值: 方法没有返回任何值。

示例1: 在下面的示例中,我们使用console log打印出sign方法,并通过给出data参数来改变sign内容。

const crypto = require('crypto'); 
const { privateKey, publicKey } =  
    crypto.generateKeyPairSync('rsa', { 
    modulusLength: 2048, 
}); 
  
const sign = crypto.createSign('SHA256'); 
  
console.log(sign.update('GeeksforGeeks')); 
  
sign.end();

输出:

Sign {   
_writableState: WritableState {   
objectMode: false,   
highWaterMark: 16384,   
finalCalled: false,   
needDrain: false,   
ending: false,   
ended: false,   
finished: false,   
destroyed: false,   
decodeStrings: true,   
defaultEncoding: 'utf8',   
length: 0,   
writing: false,   
corked: 0,   
sync: true,   
bufferProcessing: false,   
onwrite: [Function: bound onwrite],   
writecb: null,   
writelen: 0,   
afterWriteTickInfo: null,   
buffered: [],   
bufferedIndex: 0,   
allBuffers: true,   
allNoop: true,   
pendingcb: 0,   
constructed: true,   
prefinished: false,   
errorEmitted: false,   
emitClose: true,   
autoDestroy: true,   
errored: null,   
closed: false,   
closeEmitted: false,   

[Symbol(kOnFinished)]: 

},   
_events: [Object: null prototype] {},   
_eventsCount: 0,   
_maxListeners: undefined,   
[Symbol(kHandle)]: Sign {},   

[Symbol(kCapture)]: false

} 

示例2: 在下面的示例中,我们使用verify.verify()方法验证sign方法的内容。

const crypto = require('crypto'); 
const { privateKey, publicKey } = 
    crypto.generateKeyPairSync('rsa', { 
        modulusLength: 2048, 
    }); 
  
const sign = crypto.createSign('SHA256'); 
sign.update('GeeksforGeeks'); 
sign.end(); 
  
const signature = sign.sign(privateKey); 
  
const verify = crypto.createVerify('SHA256'); 
verify.update('GeeksforGeeks') 
verify.end(); 
console.log(verify.verify(publicKey, signature));

输出:

true

参考: https://nodejs.org/api/crypto.html#signupdatedata-inputencoding

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程