2016-12-01 1 views
0

다른 라이브러리가없는 Java 8 만 사용하여 5 분 만료되는 고유 토큰을 생성해야하지만 DB에 생성 시간을 저장하는 대신 생성을 저장하고 싶습니다 나중에 사용할 때 디코드 할 토큰 내부의 시간.내부에 생성 시간이있는 고유 토큰 생성

어떻게하면됩니까?

+1

쉽게 변경할 수 없도록 만들기 시간을 가져 와서 MAC을 추가하십시오. 그러나 이것은 밀리 초당 하나 이상의 토큰을 발행하는 경우 고유하지 않습니다. 필요한 경우 카운터 값을 추가 할 수 있습니다. – Henry

+1

이것은 프로그래밍 문제가 아닌 개념적 문제로 보입니다. 생성 시간은'System.currentTimeMillis()'를 통해 얻을 수 있습니다. '길다'로하는 일은 토큰의 성격과 필요한 보안의 종류에 따라 다릅니다. 또는 토큰의 정확성을 검증하는 방법. 나는 아직도 데이터베이스 스토리지가 있어야한다고 생각하지 않습니까? – Holger

답변

0

이것은 당신이 그럼 당신은 희망이 도움이 당신이 token_time 변수 와 가장 원하는 무엇을 할 수

String token = UUID.randomUUID().toString() + ":" + System.currentTimeMillis(); 
String[] t = token.split(":"); 
String token_time = t[1]; 

질문의 답변입니다

0

당신은 단순히 연결된 두 부분으로 구성 토큰 생성 할 수 있습니다

  1. 첫 번째 부분 토큰이 고유해야하는 UUID를; 당신이 해독 할 수 UUID reference
  2. 두 번째 부분에 타임 스탬프 나중에
+1

이미 타임 스탬프가 포함 된 UUID 사양의 V1을 사용할 수 있습니다! ;) – Jite

+1

소리는 간단하지만 토큰의 정확성을 어떻게 확인합니까? 완전한 토큰을 저장하여 그렇게하면 OP가 피하려고하는 시간을 효과적으로 저장하게됩니다. – Holger