code: public Pair<String, String> decryptResetToken(String encryptedToken) throws RuntimeException {
         // USER_ID-sep-DIGESTED_HASH-sep-System.currentTimeMillis
         String decriptedMessage = tokenEncryptor.decrypt(encryptedToken);
         String[] decriptArray = decriptedMessage.split(SEPARATOR);
  
         if (decriptArray.length != 3) {
             throw new RuntimeException("Malformed Token");
         }
  
         if (!isTokenUnexpired(decriptArray[2])) {
             throw new RuntimeException("Token Expired");
         }
  
         String username = decriptArray[0];
         String digestedPassword =  decriptArray[1];
  
         return new Pair<String, String>(username, digestedPassword);
     }
docs: Returns
  @param encryptedToken
  @return Pair<Username, DigestedPassword>
  @throws RuntimeException - "Malformed Token", "Token Expired" throws exception