เมธอด crypto.createSign() จะสร้างและคืนค่าออบเจ็กต์ sign ที่ใช้อัลกอริทึมที่ส่งผ่านพารามิเตอร์ สามารถใช้ crypto.getHashes() เพื่อดูชื่ออัลกอริทึมด이제สต์ (digest algorithms) ทั้งหมดที่รองรับ สามารถสร้างอินสแตนซ์ Sign ได้โดยใช้ชื่ออัลกอริทึมลายเซ็น เช่น 'RSA-SHA256' ในบางกรณี แทนที่จะใช้อัลกอริทึมด이제สต์
ไวยากรณ์
crypto.createSign(algorithm, [options])
พารามิเตอร์
พารามิเตอร์ข้างต้นอธิบายดังนี้:
algorithm – รับชื่ออัลกอริทึมที่จะใช้ในการสร้างออบเจ็กต์/อินสแตนซ์ sign
options – พารามิเตอร์ตัวเลือกที่ใช้ควบคุมพฤติกรรมสตรีม (stream behavior)
ตัวอย่าง
สร้างไฟล์ชื่อ createSign.js และคัดลอกโค้ดด้านล่าง หลังจากสร้างไฟล์แล้ว ใช้คำสั่งต่อไปนี้เพื่อรันโค้ด:
node createSign.js
createSign.js
// โปรแกรม Node.js สาธิตการใช้เมธอด createSign()
// นำเข้าโมดูล crypto
const crypto = require('crypto');
// สร้างออบเจ็กต์ sign ด้วยอัลกอริทึมที่ระบุ
const sign = crypto.createSign('SHA256');
// คืนค่าออบเจ็กต์ sign
console.log(sign);
ผลลัพธ์
C:\home\node>> node createSign.js
Sign {
_handle: {},
_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,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: false,
bufferedRequestCount: 0,
corkedRequestsFree: {
next: null,
entry: null,
finish: [Function: bound onCorkedFinish]
}
},
writable: true,
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined
}
ตัวอย่างเพิ่มเติม
ลองดูตัวอย่างอีกหนึ่งกรณี:
// โปรแกรม Node.js สาธิตการใช้เมธอด createSign()
// นำเข้าโมดูล crypto
const crypto = require('crypto');
// สร้างออบเจ็กต์ sign ด้วยอัลกอริทึม SHA256
const sign = crypto.createSign('SHA256');
// แสดงผลลัพธ์การเขียนข้อมูล
console.log(sign.write('Welcome to Tutorials Point'));
ผลลัพธ์
C:\home\node>> node createSign.js true