Problem Statement ?
- Given a string like password, byte array, we would like to perform Base64 encoding and decoding of input string or byte array.
Example of Base64 Encoding and decoding of String:
- Input string = “I Love Soccer”.
- Base64 encoded string should: “SSBMb3ZlIFNvY2Nlcg==”
- Base64 decoded string for “SSBMb3ZlIFNvY2Nlcg==” would be “I Love Soccer”
JDK classes for Base 64 encoding & decoding:
- Base64 class has two inner classes Encoder and Decoder which are used to encode and decode input byte data respectively.
-
Encoder class:
- Encoder class implements an encoder for encoding byte data using the Base64 encoding scheme as specified in RFC 4648 and RFC 2045.
- Instances of Base64.Encoder class are SAFE for use by multiple concurrent threads.
-
Decoder class:
- Decoder class implements a decoder for decoding byte data using the Base64 encoding scheme as specified in RFC 4648 and RFC 2045.
- Instances of Base64.Decoder class are SAFE for use by multiple concurrent threads.
Code: Encode & decode byte/ string using Base64 (Java8)
package org.learn; import java.util.Base64; public class Base64EncodingDemo { public static void main(String[] args) { String input = "I Love Soccer" ; byte [] bytesInput = input.getBytes(); System.out.println( "Input String : " +input); //Encode String to Base64 Base64.Encoder base64Encoder = Base64.getEncoder(); String encodedString = base64Encoder.encodeToString(bytesInput); System.out.println( "Encoded String :" + encodedString); //Decode Base64 encoded string to String Base64.Decoder base64Decoder = Base64.getDecoder(); byte [] byteDecoded = base64Decoder.decode(encodedString); System.out.println( "Decoded String :" + new String(byteDecoded)); } } |
Output: Base64 encoding & decoding of byte array (Java8)
Input String : I Love Soccer Encoded String :SSBMb3ZlIFNvY2Nlcg== Decoded String :I Love Soccer |