2016-06-15 6 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)) 

이 코드는 고유합니까?