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

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?