Base64 Java Encode And Decode A String


Answer :

You can use following approach:

import org.apache.commons.codec.binary.Base64;  // Encode data on your side using BASE64 byte[] bytesEncoded = Base64.encodeBase64(str.getBytes()); System.out.println("encoded value is " + new String(bytesEncoded));  // Decode data on other side, by processing encoded data byte[] valueDecoded = Base64.decodeBase64(bytesEncoded); System.out.println("Decoded value is " + new String(valueDecoded)); 

Hope this answers your doubt.


Java 8 now supports BASE64 Encoding and Decoding. You can use the following classes: java.util.Base64, java.util.Base64.Encoder and java.util.Base64.Decoder.

Example usage:

// encode with padding String encoded = Base64.getEncoder().encodeToString(someByteArray);  // encode without padding String encoded = Base64.getEncoder().withoutPadding().encodeToString(someByteArray);  // decode a String byte [] barr = Base64.getDecoder().decode(encoded);  

The accepted answer uses the Apache Commons package but this is how I did it using Java's native libraries

Java 11 and up

import java.util.Base64;  public class Base64Encoding {      public static void main(String[] args) {         Base64.Encoder enc = Base64.getEncoder();         Base64.Decoder dec = Base64.getDecoder();         String str = "77+9x6s=";          // encode data using BASE64         String encoded = enc.encodeToString(str.getBytes());         System.out.println("encoded value is \t" + encoded);          // Decode data         String decoded = new String(dec.decode(encoded));         System.out.println("decoded value is \t" + decoded);         System.out.println("original value is \t" + str);     } } 

Java 6 - 10

import java.io.UnsupportedEncodingException;     import javax.xml.bind.DatatypeConverter;  public class EncodeString64 {     public static void main(String[] args) throws UnsupportedEncodingException {          String str = "77+9x6s=";         // encode data using BASE64         String encoded = DatatypeConverter.printBase64Binary(str.getBytes());         System.out.println("encoded value is \t" + encoded);          // Decode data          String decoded = new String(DatatypeConverter.parseBase64Binary(encoded));         System.out.println("decoded value is \t" + decoded);          System.out.println("original value is \t" + str);     } } 

The better way would be to try/catch the encoding/decoding steps but hopefully you get the idea.


Comments

Popular posts from this blog

Chemistry - Bond Angles In NH3 And NCl3

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Change The Font Size Of Visual Studio Solution Explorer