업로드 된 이미지 이름, 세션 ID 등을 위해 고유 한 문자열 생성을 구현 한 몇 가지 방법을 살펴 보았으며 많은 경우 SHA1 등의 해시 사용법을 사용합니다.Python - 고유 문자열에 uuid4() 이외의 다른 용도를 사용하는 이유는 무엇입니까?
나는 이와 같은 사용자 지정 방법을 사용하는 정당성에 의문을 제기하는 것이 아니라 오히려 이유를 묻습니다. 고유 한 문자열을 원한다면 다음과 같이 말하면됩니다.
>>> import uuid
>>> uuid.uuid4()
UUID('07033084-5cfd-4812-90a4-e4d24ffb6e3d')
그리고 끝났습니다. 내가 UUID에 읽어 전에 나는 매우 신뢰하지 않았다, 그래서 나는이 한 (내가 하나가 지금은 가능성이 1.108e + 50처럼 생각 기대하지 않을 것이다
>>> import uuid
>>> s = set()
>>> for i in range(5000000): # That's 5 million!
>>> s.add(str(uuid.uuid4()))
...
...
>>> len(s)
5000000
단 한 중계기를하지만에 위안이다 행동에서 그것을 참조하십시오). 2 uuid4()
을 조합하여 문자열을 만드는 것만으로도 확률을 반으로 줄일 수 있습니다.
그렇다면 사람들은 왜 고유 한 문자열 등을 위해 random() 및 기타 항목에 시간을 소비합니까? uuid와 관련하여 중요한 보안 문제가 있습니까?
현재, uuid의 길이를 두 배로 늘리면 두 배가 아닌 가능한 값의 수를 제곱합니다. –