Javascript 节点';s crypto.createHmac()函数是否提供初始化向量?

Javascript 节点';s crypto.createHmac()函数是否提供初始化向量?,javascript,node.js,cryptography,hmac,Javascript,Node.js,Cryptography,Hmac,在使用中,我试图弄清楚这是否足够。即IV由内部供应: let crypto = require('crypto'); let hash = crypto.createHmac('sha256', secret); hash.update('the text to be signed'); let hmac = hash.digest(); 或者,如果我需要这样做的话。即,我需要提供并跟踪IV: let crypto = require('crypto'); let iv = crypto.ra

在使用中,我试图弄清楚这是否足够。即IV由内部供应:

let crypto = require('crypto');
let hash = crypto.createHmac('sha256', secret);
hash.update('the text to be signed');
let hmac = hash.digest();
或者,如果我需要这样做的话。即,我需要提供并跟踪IV:

let crypto = require('crypto');
let iv = crypto.randomBytes(16);
let hash = crypto.createHmac('sha256', secret);
hash.update(iv);
hash.update('the text to be signed');
let hmac = hash.digest();

我确实尝试阅读了,但我对Node和Javascript还不够熟悉,因此无法理解。

HMAC没有使用IV,Node.js实现也遵循该规范。IV用于与HMAC无关的分组密码操作模式。为什么需要为HMAC进行静脉注射?你希望得到什么样的安全属性?我使用at作为数字签名。“HMAC不使用IV”-感谢您纠正我的错误假设。HMAC也不提供数字签名功能。由于秘密必须在发送者和接收者之间共享,因此任何人都无法区分哪一方“签署”了某条消息,而这正是签名应该做的。很抱歉,数字签名可能是错误的术语。我的意思是如何使用它,例如JWT:。