2013-06-17 17 views

Odpowiedz

14

OAuth 2.0 specification nie mówi nic o tym, jak wygenerować token i tajny token. Zatem od ciebie zależy, czy użyjesz istniejących/zakotwiczonych danych do wygenerowania tokenów, czy chcesz użyć losowej sekwencji do wygenerowania tokenów. Jedyna różnica polega na tym, że jeśli używasz prawdopodobnie znanych danych (np. Danych użytkownika, takich jak nazwa użytkownika, data utworzenia itd.), Możesz przywrócić tokeny w dowolnym momencie. Jeśli używasz losowej sekwencji danych, nie możesz przywrócić tokenów, gdy zostaną utracone.

Innymi słowy, RFC nie ogranicza procesu generowania.

Prawdopodobnie użyłbym konkatenacji ciągów danych Szczegóły użytkownika plus losowe dane, a następnie kodowania Base64.

String keySource = username + creationDate + random; 
byte [] tokenByte = new Base64(true).encodeBase64(keySource.getBytes()); 
String token = new String(tokenByte); 
+1

dzięki za sugestię, moim wymaganiem jest posiadanie samodzielnego tokena zawierającego informacje takie jak identyfikator klienta, identyfikator aplikacji itp. Oraz tajny token, który może być użyty do odszyfrowania wydanego tokena i uzyskania informacji w tokenie. zaproponuj mi jakiś sposób, aby to osiągnąć. – willsteel

+1

Następnie można utworzyć token, który jest identyfikatorem klienta, identyfikatorem aplikacji itp. Wygeneruj tajny token i zapisz go w DB. I użyj algorytmu DES do zaszyfrowania/odszyfrowania wydanego tokena za pomocą tajnego tokena. Oto przykład użycia DES: java http://java-espresso.blogspot.com/2011/09/des-algorithm-code-in-java.html – Sqeezer

+0

Dziękuję, że właśnie tego szukałem, mogę sugerujesz niektóre z innych algorytmów, które są bardziej bezpieczne niż DES i mogą być użyte do mojego wymagania? – willsteel

Powiązane problemy