我正在做一个非常简单的编码操作:我通过调用crypto.createCipheriv初始化Cipher对象;然后调用一次update函数然后是最终的功能。
文档建议最后一个函数应该返回任何需要加密的剩余字节。
实际上,update函数返回的缓冲区大小与我要加密的缓冲区大小完全相同。最后一个函数返回额外的16个字节。我不知道这些字节是什么。我以为必须将两个缓冲区连接起来,但这样做会导致缓冲区比原始数据长16个字节。
我使用了一个16字节的初始化向量,我最初认为额外的16字节就是那些字节,但它们不是。
1条答案
按热度按时间v6ylcynt1#
看起来你在Node.js中的
crypto.createCipheriv
函数以及update
和final
函数的行为方面遇到了问题。让我们试着解决这个问题。首先,确保您使用的加密算法和密钥大小符合您的需要。不同的算法和密钥大小可以产生不同的输出长度。
Cipher
对象中的update
函数处理输入数据并返回任何加密的输出。final
函数用于完成加密过程并返回剩余字节。以下是使用
crypto.createCipheriv
、update
和final
函数处理加密的建议方法:请确保将
'your-key'
替换为您实际的加密密钥,将'your-data'
替换为您要加密的数据。update
函数处理输入数据,final
函数完成加密。如果您仍然遇到意外行为或获得额外字节,请提供更多代码片段或说明您使用的加密算法和密钥大小。此外,请确保您使用的是最新版本的Node.js,以避免任何潜在的错误或不一致。