【问题标题】:Generate token for an action为操作生成令牌
【发布时间】:2016-06-15 21:29:10
【问题描述】:

我需要生成一个允许某人执行独特操作的令牌。 困难在于没有人必须找到这个令牌并执行其他人的操作。使用 python 我想知道生成随机令牌是否足够?有人可以告诉我生成一个不容易找到的强令牌需要什么

感谢您的帮助!

【问题讨论】:

  • 你能提供一些上下文吗? “不容易找到”是什么意思?您的在线服务的用户(如果您使用在线服务)是否应该看不到令牌?或者它不应该在内存中,这样如果有人拿走了你的电脑就找不到它?

标签: python security token


【解决方案1】:

你可以做的是有一个代码,它只从字母(大写和小写)和数字生成一个随机的 32 位字符串,并将其保存在数据库中,并有一个过期时间(几个小时就足够了)。

这样即使“黑客”在他接近的时候开始暴力破解,令牌也会过期,他将不得不从头开始。

注意:

如果您想让它更强大,您还可以在令牌中使用特殊字符。

【讨论】:

    【解决方案2】:
    def generate_key(number=20):  
        result = binascii.hexlify(os.urandom(number))  
        return result  
    

    md5(username + password_hash + a_random_string) + generate_key()。我认为它像你预期的那样强大。实际上我通常只使用 generate_key 。我觉得它足够强大。

    【讨论】:

      【解决方案3】:

      感谢您的回复。 事实上我不能有一个过期时间。 这是某人可以购买的东西,我们给他一个代币,有了这个代币,他就可以做一个动作。所以我不能使用到期时间。我想我需要一些非常强大和独特的东西。

      inascii.hexlify(os.urandom(number))
      

      这段代码可以保持唯一性吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 1970-01-01
        • 2019-07-07
        • 1970-01-01
        • 2016-11-27
        • 1970-01-01
        相关资源
        最近更新 更多