package com.github.hburgmeier.jerseyoauth2.authsrv.impl.services; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.UUID; import com.github.hburgmeier.jerseyoauth2.authsrv.api.token.ITokenGenerator; import com.github.hburgmeier.jerseyoauth2.authsrv.api.token.TokenGenerationException; public class MD5TokenGenerator implements ITokenGenerator { @Override public String createAccessToken() throws TokenGenerationException { return generateValue(); } @Override public String createRefreshToken() throws TokenGenerationException { return generateValue(); } @Override public String createAuthenticationCode() throws TokenGenerationException { return generateValue(); } protected String generateValue() throws TokenGenerationException { try { return calculateHexMD5(UUID.randomUUID().toString()); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { throw new TokenGenerationException(e); } } protected String calculateHexMD5(String value) throws NoSuchAlgorithmException, UnsupportedEncodingException { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] mdbytes = md.digest(value.getBytes("UTF-8")); StringBuffer sb = new StringBuffer(); for (int i = 0; i < mdbytes.length; i++) { sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1)); } return sb.toString(); } }