2016-06-15 7 views
0

誰かが一意のアクションを実行できるトークンを生成する必要があります。 難しいのは、誰もこのトークンを見つけて、誰かの行動をしなければならないということです。私はランダムなトークンを生成するのが十分かどうかを知りたいですか?誰かが簡単に見つけられない強いトークンを生成するために必要なことを教えてもらえますか?アクションのトークンを生成

ありがとうございました!

+0

コンテキストを教えてもらえますか? 「簡単に見つけられない」とどういう意味ですか?あなたのオンラインサービスのユーザーは、トークンを見ることができないのでしょうか?それとも、誰かが物理的にあなたのPCを持っている場合、それが見つからないように、それは記憶にないはずですか? – syntonym

答えて

1

あなたができることは、文字(大文字と小文字)と数字からランダムな32ビット文字列を生成し、それを有効期限のあるDBに保存するコードです(数時間で十分でしょう)。

この方法では、たとえ "ハッカー"が近くにいてもブルートフォースを開始しても、トークンは期限切れになり、彼は開始から始める必要があります。

注:

あなたはそれをさらに強くしたい場合はまた、あなたのトークンで特殊文字を使用することができます。

1
def generate_key(number=20): 
    result = binascii.hexlify(os.urandom(number)) 
    return result 

MD5(ユーザ名+ password_hash + a_random_string)+ GENERATE_KEY()。私はそれがあなたが期待したように強いと思います。実際は私は通常generate_keyのみを使用します。私はそれを十分に強く見つける。

0

ご回答ありがとうございます。 実際、私は期限切れにすることはできません。 これは誰かが購入できるもので、私たちは彼にトークンを与え、このトークンで行動を起こすことができます。だから、私は満期の時間を使用することはできません。私は非常に強くユニークなものが必要だと思う。

inascii.hexlify(os.urandom(number)) 

このコードは一意性を保持できますか?

関連する問題