Nodejs中的AES-256-GCM

时间:2018-05-19 17:41:52

标签: node.js encryption cryptography

我正在弄乱nodejs中的加密。我想使用aes-256-gcm algoritm,但我有几个问题..请告诉我,如果我做对了..

salt = crypto.randomBytes(64)

Salt只是一个radom伪数据,对吗?只是为了让我们的加密字符串更难阅读?

我想使用createCipheriv方法。以下是我的表现方式:

crypto.createCipheriv('aes-256-gcm', key, iv)

第一个参数是我们的算法,然后我们得到了我们的密钥(用于加密和解密),最后一个是IV。除了更改加密的字符串外观之外,它究竟意味着什么?我们每次要加密某些东西时都应该改变,对吗?

tag = cipher.getAuthTag();

标签的确切含义是什么?我们为什么需要它?

1 个答案:

答案 0 :(得分:2)

salt的功能是确保使用相同密钥对相同数据进行两次加密不会产生相同的加密数据。

每个加密应该是一个不同的随机值。由于它不需要保密,因此它可以是加密的前缀,因此解密功能将使其可用。

想象一下,每天发送的消息都是"购买"或者"出售",这将是显而易见的消息意味着什么。

标记是身份验证的一部分,可确保加密邮件未被更改。

GCM模式是一种经过身份验证的加密形式,也不需要填充消息。