Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js crypto是否在GCM模式下使用固定标记大小?_Node.js_Encryption_Aes Gcm - Fatal编程技术网

node.js crypto是否在GCM模式下使用固定标记大小?

node.js crypto是否在GCM模式下使用固定标记大小?,node.js,encryption,aes-gcm,Node.js,Encryption,Aes Gcm,我正在node.js中以GCM模式使用密码实现一个方案 为了检查完整性,我必须在密文中附加/前置GCM标记。然而,我不确定标签会有多大 在上,我读到大小可能不同,它实际上是GCM模式的一个参数。引用wiki,emphasis mine: 双方必须提供和使用的参数为: 键和键大小 iv和iv尺寸 标签大小 但是,在中,标记大小无关。只是标记存在。从文件中引用: cipher.getAuthTag() 对于经过身份验证的加密模式(当前支持:GCM),此 方法返回一个缓冲区,该缓冲区表示 已根据给

我正在node.js中以GCM模式使用密码实现一个方案

为了检查完整性,我必须在密文中附加/前置GCM标记。然而,我不确定标签会有多大

在上,我读到大小可能不同,它实际上是GCM模式的一个参数。引用wiki,emphasis mine:

双方必须提供和使用的参数为:

  • 键和键大小
  • iv和iv尺寸
  • 标签大小
但是,在中,标记大小无关。只是标记存在。从文件中引用:

cipher.getAuthTag()

对于经过身份验证的加密模式(当前支持:GCM),此 方法返回一个缓冲区,该缓冲区表示 已根据给定数据计算。应该被要求 已使用最终方法完成加密


我是否应该期望标签大小有所不同,并将标签大小与密文一起保存?或者我可以假设标记大小始终小于128位,并在左侧用零填充吗?

node.js和browserify crypto都使用128位标记

我还没有找到实际的代码,但通过查看测试,这是显而易见的


,.

Node.js在引擎盖下使用OpenSSL,因此可以在那里查看。将标记填充到128位是错误的,因为这样您就不知道需要比较多少位(不是node.js在解密过程中提供生成的标记以便您自己进行比较)。实际上,我希望生成的代码能够在node和browserify中工作。这让事情变得复杂了一点。如果身份验证标签较小,它只是完整标签的前x位。所以我假设返回128位。然后应用程序可以决定使用多少。但是请注意,GCM提供的安全性对于较小的标记大小来说会严重降低,因此您可能应该使用完整的128位。