gpt4 book ai didi

algorithm - 快速和安全之间的平衡 : time sensitive password encryption algorithm

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:30:19 24 4
gpt4 key购买 nike

我正在开发客户端<>服务器多人游戏。身份验证与所有游戏逻辑等在同一台服务器上完成。这意味着我的身份验证密码加密算法不会花费太多计算时间,因为它会延迟所有其他所需的操作。如果许多人同时登录,当使用需要大量时间处理的非常强大的加密算法时,会导致明显的延迟。

这就是我寻求平衡的原因:一种仍然可靠且不易破解但速度足以在同一台服务器上执行的加密算法。你有什么建议?

最佳答案

首先,要执行身份验证,您不需要“加密”的密码;存储加密密码会使您的用户面临风险,我强烈反对。由于用户无知,他们很可能会为他们的银行账户和您的游戏使用相同的密码。妥善保管该密码,帮助他们保持安全。

相反,存储密码的不可逆“散列”和随机“盐”。在 StackOverflow 上有很多关于如何执行此操作的问题,他们的一些答案几乎是正确的。

您的问题的独特之处在于您特别关注身份验证过程的性能。这是一个有趣的问题,因为一个好的密码保护方案实际上被设计得有点慢。这是为了击败试图在“离线”攻击中猜测密码的攻击者,他可以在其中测试数十亿个密码。算法越慢,他可以进行的尝试就越少。

我推荐的用于保护密码的算法实际上是一种称为 PBKDF2 的 key 派生算法(PBKDF1 也可以),它在 PKCS #5 中有描述。这些算法的调整参数之一是迭代次数。您可以在服务器上分析算法,并调整迭代次数,直到找到满足性能要求的数字。甚至我的笔记本电脑每秒也可以执行数千次迭代,所以我可能会从大约 2000 次开始,然后从那里开始工作。

如果您实际上是在谈论加密客户端和服务器之间的所有流量,请使用 AES。它之所以被选中是因为它的速度,尽管竞争中的其他一些密码可能更安全。具体来说,在 SSL 连接中使用 AES 密码套件。

安全连接的代价是建立 session 时发生的 key 协议(protocol)(或 key 传输)。持续加密(和消息完整性计算)增加的开销非常小。

关于algorithm - 快速和安全之间的平衡 : time sensitive password encryption algorithm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1631917/

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