gpt4 book ai didi

node.js - AES256密码和iv,正确的方法

转载 作者:太空宇宙 更新时间:2023-11-04 03:03:53 25 4
gpt4 key购买 nike

我想使用 AES256 加密 token 创建和管理用户 session 。

我正在使用 Node 的加密库并遵循此 stackoverflow question

我使用它来创建 session token ,该 token 将发送到前端并存储在后端用于验证目的,并且数据是字符串化的 JSON。

在这里我看到两件事,一个是password,另一个是iv

有两个问题,

  1. 将 iv 发送到前端是否安全(iv + "."+ encData)

  2. 密码应该如何生成? SHA256 怎么样(例如我在注册时存储在数据库中的用户密码)

这样我将为每个用户使用不同的密码。这种做法正确吗?

附注下面的两个答案都有很大帮助,如果您在这里,请阅读所有评论和附加的问题以及链接的文章。

最佳答案

让我们继续讨论当前的问题:

  1. Is the iv is safe to sent to frontend (iv + "." + encData)?

嗯,是的。 IV 可能是公众知识;只要它是唯一的并且(在 CBC 模式加密的情况下)是随机的,那么就可以了。当然,IV 和 encData 应该进行适当的编码,例如使用十六进制(如链接的答案中所示)或基数 64。这种情况并不常见,因为对于 AES,IV 始终为 16 字节,因此很容易将二进制 IV 作为前缀添加到 encData 中。

谨防黑客更改输入;如果点或冒号被删除,那么您可能只有一个元素的数组,并且访问密文可能会导致错误或空数据的解密。

  1. How should the password be generated? How about a SHA256 of (e.g. user's password that I store in db at signup)

不,您应该使用密码哈希; SHA-256 是一种加密安全哈希,但不是 PBKDF2、bcrypt、scrypt 或 Argon2 等密码哈希。如果您想在数据库中存储某些内容,请不要使用从密码生成的 AES key 。

<小时/>

这并不以任何方式使 answer of TheGreatContini 中的任何问题无效。 。这不是安全建议,只是您要求的与密码学相关的建议。

关于node.js - AES256密码和iv,正确的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46330089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com