Node.js 是一個跨平台、開源的 back-end JavaScript 運行時環境,它使用 V8 引擎在 Web 瀏覽器之外執行 JavaScript 代碼。 Node.js 允許開發人員利用 JavaScript 創建命令行工具和服務器端腳本,其中涉及在將頁麵發送到用戶瀏覽器之前在服務器上運行腳本。加密函數是通過 crypto 模塊提供的,其中包括 OpenSSL 的哈希、HMAC、密碼、解碼、簽名和驗證方法的包裝器。
crypto.setEngine() 函數加載並配置由標誌選擇的部分或全部 OpenSSL 函數的引擎。
用法:
crypto.setEngine(engine[, flags])
參數:
- engine:這是引擎共享庫的 ID 或路徑。
- flags:標誌是一個位字段,采用標誌之一或標誌的組合。它用於選擇函數的類別。默認值為ENGINE_METHOD_ALL。
示例 1:創建一個 node.js 項目以及名為 index.js 的文件,並編寫以下代碼。
Javascript
const crypto = require("crypto");
crypto.setEngine("dynamic");
const secret = 'geeksforgeeks';
const hash = crypto
.createHmac('sha256', secret)
.update('I am a geek')
.digest('hex');
console.log(hash);
運行應用程序的步驟: 您可以通過鍵入以下代碼行來運行代碼:
node index.js
輸出:
示例 2:創建一個 node.js 項目以及名為 index.js 的文件,並編寫以下代碼。
Javascript
const crypto = require("crypto");
crypto.setEngine("dynamic", crypto.constants.ENGINE_METHOD_DH);
const dh = crypto.createDiffieHellman(512);
dh.generateKeys()
const publicKey = dh.getPublicKey();
console.log(publicKey);
運行應用程序的步驟: 您可以通過鍵入以下代碼行來運行代碼:
node index.js
注意:這將引擎的使用限製為僅 Diffie Hellman。
輸出:
參考: https://nodejs.org/dist/latest-v12.x/docs/api/crypto.html#crypto_crypto_setengine_engine_flags
相關用法
- Node.js crypto.setFips()用法及代碼示例
- Node.js crypto.secureHeapUsed()用法及代碼示例
- Node.js crypto.scrypt()用法及代碼示例
- Node.js crypto.scryptSync()用法及代碼示例
- Node.js crypto.sign()用法及代碼示例
- Node.js crypto.scrypt(password, salt, keylen[, options], callback)用法及代碼示例
- Node.js crypto.scryptSync(password, salt, keylen[, options])用法及代碼示例
- Node.js crypto.createDiffieHellman()用法及代碼示例
- Node.js crypto.createSign()用法及代碼示例
- Node.js crypto.createVerify()用法及代碼示例
- Node.js crypto.getCiphers()用法及代碼示例
- Node.js crypto.getHashes()用法及代碼示例
- Node.js crypto.getCurves()用法及代碼示例
- Node.js crypto.getDiffieHellman()用法及代碼示例
- Node.js crypto.pbkdf2()用法及代碼示例
- Node.js crypto.createHash()用法及代碼示例
- Node.js crypto.createHmac()用法及代碼示例
- Node.js crypto.randomBytes()用法及代碼示例
- Node.js crypto.publicDecrypt()用法及代碼示例
- Node.js crypto.pbkdf2Sync()用法及代碼示例
- Node.js crypto.createECDH()用法及代碼示例
- Node.js crypto.createDecipheriv()用法及代碼示例
- Node.js crypto.createCipheriv()用法及代碼示例
- Node.js crypto.createDiffieHellmanGroup()用法及代碼示例
- Node.js crypto.privateDecrypt()用法及代碼示例
注:本文由純淨天空篩選整理自aayushmohansinha大神的英文原創作品 Node.js crypto.setEngine() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。