2012-12-01 5 views
0

안녕하세요 여러분 께 제안 해주십시오.Java의 고유 ID 코드

15 길이의 키 코드 양식을 현재 시간 스탬프로 만들고 싶습니다. 코드에는 숫자가있는 소문자와 대문자가 포함되어야합니다. 누구든지 현재 타임 스탬프에서 15 길이의 고유 코드를 어떻게 만들 수 있는지 제안 할 수 있습니까? 서블릿 측면에서 Java 사용.

+0

귀하의 제약 조건은 무엇입니까? 왜 GUID가 아닌가? – Simon

+0

뭔가가 필요합니다. BKtR3g5SxmN2 등등. . 하지만 현재 시간 스탬프를 사용하여 생성해야합니다 – aftab

+0

안녕하세요 시몬 당신이 GUID에 대한 자세한 내용을 안내 할 수 있다면? – aftab

답변

1

귀하의 제약 사항을 감안할 때, 나는 아마도 create a GUID을 추가하거나 타임 스탬프를 추가하고 15 글자 형식으로 변환 할 것입니다. GUID는 32 자리 16 진수이므로 32^16 (1.20892582x10) 가능한 값을 갖습니다 (모든 값이 사용되는 것은 아니지만). 숫자 또는 대문자 또는 소문자 영문 문자로 된 15 자 (따라서 숫자 당 62 개의 가능한 값)는 15^62 (8.272905461x10)   — 충분한 공간을 제공합니다. 가능한 문자의 목록에 +/을 추가해도 괜찮 았다면 직접 수행하는 대신 Base64 encoding을 사용할 수 있습니다.

+0

관심을 끌기 위해 GUIDS는 통계적으로 유일해야합니다. 두 개의 동일한 GUID가 어딘가에 존재할 수도 있지만 (때로는 의도적으로 복제되기도 함) 동일한 시스템 내에서 동일한 상황에서 나타날 수있는 기회가 너무 작아서 무시할 수 있습니다. 그것은 알려진 우주의 별 개수와 각각 1x10^14 GUID (정확한 가수를 기억할 수는 없지만 올바른 순서 임)와 유사해야합니다. – Simon

+0

@ 시몬 : 예. 그들은 독특하지 않으며, 대부분의 경우 고유합니다. 그리고 거기에 추가 타임 스탬프를 던지십시오. –

+0

죄송합니다, @aftab을 잊었습니다. 지나가는 "꽤 재미있는"일이었습니다. – Simon