crypto.hkdf(digest, ikm, salt, info, keylen, callback)
曆史
版本 | 變化 |
---|---|
v18.0.0 | 將無效回調傳遞給 |
v15.0.0 | 添加於:v15.0.0 |
參數
digest
<string> 要使用的摘要算法。ikm
<string> | <ArrayBuffer> | <Buffer> | <TypedArray> | <DataView> | <KeyObject> 輸入 key 材料。它的長度必須至少為一個字節。salt
<string> | <ArrayBuffer> | <Buffer> | <TypedArray> | <DataView> 鹽值。必須提供,但長度可以為零。info
<string> | <ArrayBuffer> | <Buffer> | <TypedArray> | <DataView> 附加信息值。必須提供,但長度可以為零,並且不能超過 1024 字節。keylen
<number> 要生成的 key 的長度。必須大於 0。最大允許值是255
乘以所選摘要函數產生的字節數(例如,sha512
生成 64 字節散列,使得 HKDF 輸出最大 16320 字節)。callback
<Function>err
<Error>derivedKey
<ArrayBuffer>
HKDF 是 RFC 5869 中定義的簡單 key 派生函數。給定的 ikm
、 salt
和 info
與 digest
一起使用以派生 keylen
字節的 key 。
提供的 callback
函數使用兩個參數調用:err
和 derivedKey
。如果在派生 key 時發生錯誤,將設置err
;否則 err
將是 null
。成功生成的 derivedKey
將作為 <ArrayBuffer> 傳遞給回調。如果任何輸入參數指定無效值或類型,將引發錯誤。
import { Buffer } from 'node:buffer'; const { hkdf } = await import('node:crypto'); hkdf('sha512', 'key', 'salt', 'info', 64, (err, derivedKey) => { if (err) throw err; console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653' });
const { hkdf, } = require('node:crypto'); const { Buffer } = require('node:buffer'); hkdf('sha512', 'key', 'salt', 'info', 64, (err, derivedKey) => { if (err) throw err; console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653' });
相關用法
- Node.js crypto.hkdfSync()用法及代碼示例
- Node.js crypto.hkdfSync(digest, ikm, salt, info, keylen)用法及代碼示例
- Node.js crypto.randomFill()用法及代碼示例
- Node.js crypto.createHmac()用法及代碼示例
- Node.js crypto.randomFillSync(buffer[, offset][, size])用法及代碼示例
- Node.js crypto.constants用法及代碼示例
- Node.js crypto.randomInt([min, ]max[, callback])用法及代碼示例
- Node.js crypto.publicEncrypt()用法及代碼示例
- Node.js crypto.publicDecrypt()用法及代碼示例
- Node.js crypto.pbkdf2Sync(password, salt, iterations, keylen, digest)用法及代碼示例
- Node.js crypto.createHash()用法及代碼示例
- Node.js crypto.randomFillSync()用法及代碼示例
- Node.js crypto.checkPrime()用法及代碼示例
- Node.js crypto.sign()用法及代碼示例
- Node.js crypto.webcrypto用法及代碼示例
- Node.js crypto.generateKeyPairSync(type, options)用法及代碼示例
- Node.js crypto.createCipheriv()用法及代碼示例
- Node.js crypto.scrypt(password, salt, keylen[, options], callback)用法及代碼示例
- Node.js crypto.createVerify()用法及代碼示例
- Node.js crypto.getCurves()用法及代碼示例
- Node.js crypto.generateKeyPair()用法及代碼示例
- Node.js crypto.randomFill(buffer[, offset][, size], callback)用法及代碼示例
- Node.js crypto.randomBytes()用法及代碼示例
- Node.js crypto.createDiffieHellman()用法及代碼示例
- Node.js crypto.randomInt()用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 crypto.hkdf(digest, ikm, salt, info, keylen, callback)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。