Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เมธอด crypto.createVerify() ใน Node.js

เมธอด crypto.createVerify() จะสร้างและคืนค่าออบเจ็กต์ verify ที่ใช้อัลกอริทึมที่ส่งผ่านพารามิเตอร์ สามารถใช้ crypto.getHashes() เพื่อดูชื่ออัลกอริทึมการลงนามทั้งหมดที่รองรับ สามารถสร้างอินสแตนซ์ Verify ได้โดยใช้ชื่ออัลกอริทึมลายเซ็น เช่น 'RSA-SHA256' ในบางกรณี แทนที่จะใช้อัลกอริทึมด이제สต์ (digest algorithm)

ไวยากรณ์

crypto.createVerify(algorithm, [options])

พารามิเตอร์

พารามิเตอร์ข้างต้นอธิบายดังนี้:

  • algorithm – รับชื่ออัลกอริทึมที่จะใช้ในการสร้างออบเจ็กต์/อินสแตนซ์ verify

  • options – พารามิเตอร์ตัวเลือกที่ใช้ควบคุมพฤติกรรมสตรีม (stream behavior)

ตัวอย่าง

สร้างไฟล์ชื่อ createVerify.js และคัดลอกโค้ดด้านล่าง หลังจากสร้างไฟล์แล้ว ใช้คำสั่งต่อไปนี้เพื่อรันโค้ด:

node createVerify.js

createVerify.js

// โปรแกรม Node.js สาธิตการใช้เมธอด createVerify()
// นำเข้าโมดูล crypto
const crypto = require('crypto');

// สร้างออบเจ็กต์ verify ด้วยอัลกอริทึมที่ระบุ
const verify = crypto.createVerify('SHA256');

// คืนค่าออบเจ็กต์ verify
console.log(verify);

ผลลัพธ์

C:\home\node>> node createVerify.js
Verify {
    _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 สาธิตการใช้เมธอด createVerify()
// นำเข้าโมดูล crypto
const crypto = require('crypto');

// สร้างออบเจ็กต์ verify จากอัลกอริทึม SHA256
const verify = crypto.createVerify('SHA256');

// เขียนข้อมูลที่จะลงนามและตรวจสอบ
verify.write('TutorialPoint');
// จบการเขียน
verify.end();

// เริ่มต้นการทำงานของกุญแจสาธารณะ
const l1 = "-----BEGIN PUBLIC KEY-----\n";
// ข้อมูลที่เข้ารหัส
const l2 = "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXIvPbzLjaPLd8jgiv1TL/X8PXpJNgDkGRj9U9Lcx1yKURpQFVavcMkfWyO8r7JlZNMax0JKfLZUM1IePRjHlFw==";
// จบการทำงานของกุญแจสาธารณะ
const l3 = "\n-----END PUBLIC KEY-----";
// รวมกุญแจสาธารณะทั้งหมด
const publicKey = l1 + l2 + l3;
// ลายเซ็นที่จะตรวจสอบ
const signature = "MEYCIQCPfWhpzxMqu3gZWflBm5V0aetgb2/S+SGyGcElaOjgdgIhALaD4lbxVwa8HUUBFOLz+CGvIioDkf9oihSnXHCqh8yV";
// แสดง true ถ้าลายเซ็นถูกต้อง ไม่เช่นนั้น false
console.log(verify.verify(publicKey, signature));

ผลลัพธ์

C:\home\node>> node createVerify.js
false