title: Decode base64Url in Java
body: <p><a href="https://web.archive.org/web/20110422225659/https://en.wikipedia.org/wiki/Base64#URL_applications" rel="noreferrer">https://web.archive.org/web/20110422225659/https://en.wikipedia.org/wiki/Base64#URL_applications</a></p>
  
  <p>talks about base64Url - Decode</p>
  
  <hr>
  
  <p>a modified Base64 for URL variant exists, where no padding '=' will be used, and the '+' and '/' characters of standard Base64 are respectively replaced by '-' and '_'</p>
  
  <hr>
  
  <p>I created the following function:</p>
  
  <pre><code>public static String base64UrlDecode(String input) {
      String result = null;
      BASE64Decoder decoder = new BASE64Decoder();
      try {
          result = decoder.decodeBuffer(input.replace('-','+').replace('/','_')).toString();
      }
      catch (IOException e) {
          System.out.println(e.getMessage());
      }
      return result;
  }
  </code></pre>
  
  <p>it returns a very small set of characters that don't even resemble to the expected results.
  any ideas?</p>