gpt4 book ai didi

ruby-on-rails - md5 或 urlsafe_base64 或其他用于创建 auth_token

转载 作者:行者123 更新时间:2023-12-04 03:45:51 24 4
gpt4 key购买 nike

我有一个 Rails 应用程序,我们使用 user_id 并写入 session 变量(作为 cookie)。我将为浏览器和移动平台使用相同的 token 。

生成授权 token 的首选方法是什么?我见过:

token = Digest::MD5.hexdigest('some-value') # this
token = SecureRandom.urlsafe_base64 # and this
token = SecureRandom.hex # and this

是否有重要的理由使用一个而不是另一个?

提前谢谢

最佳答案

在 Rails 上下文之外(因为我们在这里讨论的是一般 Web 应用程序安全性),它很容易辨别。

因此,使用 MD5,您有两种方法。使用固定输入或随机输入。为了便于讨论,任何包含随机成分的输入(例如附加了随机属性的用户名)都被视为随机输入。

固定输入法不好。原因是它最终在某种程度上是可以预测的。如果攻击者可以预测他/她的 token (了解它是如何生成的),他可以使用它来攻击其他 token 。换句话说,对每个人来说都是糟糕的一天。

随机输入法和纯随机token法其实没什么区别,只是有一部分输入不是随机的。

所以我建议使用纯随机 token 。 base64 或 hex 都可以,但您应该在 token 中至少有 128 位随机性(16 个字符),如果可以的话,可以更多。一个好的base是256位的随机数,在base64中是43个字符...

关于ruby-on-rails - md5 或 urlsafe_base64 或其他用于创建 auth_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15489822/

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