密碼術是將純文本轉換為不可讀的,經過哈希處理的過程從文字反之亦然crypto.sign()用於創建數據簽名。
用法:
crypto.sign(algorithm, data, key)
參數:該函數接受以下參數:
- algorithm:它是一個string-type值。可以通過應用簽名算法的名稱(例如“ SHA256”)代替摘要算法來創建簽名。
- data:它應該是buffer,TypedArray或DataView的對象。讀取Buffer.from()方法以將字符串轉換為Buffer。
- key:它應該是keyObject的privateKey。如果沒有任何私鑰,則可以使用crypto.generateKeyPairSync()方法創建私鑰和公鑰。
模塊安裝:使用以下命令安裝所需的模塊:
npm install crypto
返回值:它根據指定的算法,數據和 key 返回簽名值。返回值默認為Buffer,但可以使用buffer.toString()方法轉換為其他格式。
範例1:在字符串上簽名。
signature.js
const crypto = require('crypto');
const buffer = require('buffer');
// Create a private key
const { privateKey, publicKey } = crypto.generateKeyPairSync('rsa', {
modulusLength:2048,
});
// Convert string to buffer
const data = Buffer.from("I Love GeeksForGeeks");
// Sign the data and returned signature in buffer
const sign = crypto.sign("SHA256", data , privateKey);
// Convert returned buffer to base64
const signature = sign.toString('base64');
// Printing the signature
console.log(`Signature:\n\n ${signature}`);
使用以下命令運行signature.js文件:
node signature.js
輸出:
範例2:簽名文件。
signature.js
const crypto = require('crypto');
const buffer = require('buffer');
const fs = require('fs');
// Create a private key
const { privateKey } = crypto.generateKeyPairSync('rsa', {
modulusLength:2048,
});
console.log("Reading File...\n");
// Reading file
const text = fs.readFileSync('./doc.txt');
console.log(`File content:${text}`);
// Convert string to buffer
const data = Buffer.from(text);
// Sign the data and returned signature in buffer
const sign = crypto.sign("SHA256", data , privateKey);
// Convert returned buffer to base64
const signature = sign.toString('base64');
// Printing the signature
console.log(`Signature:\n\n ${signature}`);
使用以下命令運行signature.js文件:
node signature.js
輸出:
範例3:簽署JSON數據。
signature.js
const crypto = require('crypto');
const buffer = require('buffer');
// Create a private key
const { privateKey } = crypto.generateKeyPairSync('rsa', {
modulusLength:2048,
});
// JSON object
const person = {
name:"Raktim Banerjee",
email:"example@gmail.com",
address:"4 main street"
}
// Convert Stringified json data to buffer
const data = Buffer.from( JSON.stringify(person) );
// Sign the data and returned signature in buffer
const sign = crypto.sign("SHA256", data , privateKey);
// Convert returned buffer to base64
const signature = sign.toString('base64');
// Printing the signature
console.log(`Signature:\n\n ${signature}`);
使用以下命令運行signature.js文件:
node signature.js
輸出:
參考:https://nodejs.org/api/crypto.html#crypto_crypto_sign_algorithm_data_key_callback
相關用法
- Node.js GM charcoal()用法及代碼示例
- Node.js GM blur()用法及代碼示例
- Node.js GM sharpen()用法及代碼示例
- Node.js GM drawLine()用法及代碼示例
- Node.js GM drawArc()用法及代碼示例
- Node.js GM drawPolyline()用法及代碼示例
- Node.js GM drawBezier()用法及代碼示例
- Node.js GM drawCircle()用法及代碼示例
- Node.js GM drawEllipse()用法及代碼示例
- Node.js GM drawPolygon()用法及代碼示例
- Node.js GM drawRectangle()用法及代碼示例
- Node.js GM paint()用法及代碼示例
- Node.js GM orderedDither()用法及代碼示例
- Node.js GM roll()用法及代碼示例
- Node.js GM segment()用法及代碼示例
- Node.js GM quality()用法及代碼示例
- Node.js GM raise()用法及代碼示例
- Node.js GM resize()用法及代碼示例
- Node.js GM transparent()用法及代碼示例
- Node.js GM thumbnail()用法及代碼示例
- Node.js GM threshold()用法及代碼示例
- Node.js GM whitePoint()用法及代碼示例
- Node.js GM whiteThreshold()用法及代碼示例
注:本文由純淨天空篩選整理自braktim99大神的英文原創作品 Node.js crypto.sign() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。