logo

Кодиране и декодиране на Java Base64

Java предоставя клас Base64 за справяне с криптирането. Можете да шифровате и дешифрирате вашите данни, като използвате предоставените методи. Трябва да импортирате java.util.Base64 във вашия изходен файл, за да използвате неговите методи.

Този клас предоставя три различни енкодера и декодера за криптиране на информация на всяко ниво. Можете да използвате тези методи на следните нива.


Основно кодиране и декодиране

Той използва азбуката Base64, определена от Java в RFC 4648 и RFC 2045 за операции по кодиране и декодиране. Кодерът не добавя символ за разделяне на редове. Декодерът отхвърля данни, които съдържат знаци извън азбуката base64.


Кодиране и декодиране на URL и име на файл

Той използва азбуката Base64, определена от Java в RFC 4648 за операции по кодиране и декодиране. Кодерът не добавя символ за разделяне на редове. Декодерът отхвърля данни, които съдържат знаци извън азбуката base64.


MIME

Той използва азбуката Base64, както е посочено в RFC 2045 за операции по кодиране и декодиране. Кодираният изход трябва да бъде представен в редове с не повече от 76 знака всеки и използва връщане на каретка ' ', последвано незабавно от нов ред ' ' като разделител на реда. Не се добавя разделител на редове в края на кодирания изход. Всички разделители на редове или други знаци, които не се намират в азбучната таблица base64, се игнорират при операцията по декодиране.


Вложени класове на Base64

Клас Описание
Base64.Decoder Този клас имплементира декодер за декодиране на байтови данни, използвайки схемата за кодиране Base64, както е посочено в RFC 4648 и RFC 2045.
Base64.Encoder Този клас имплементира енкодер за кодиране на байтови данни, използвайки схемата за кодиране Base64, както е посочено в RFC 4648 и RFC 2045.

Методи Base64

Методи Описание
публичен статичен Base64.Decoder getDecoder() Той връща Base64.Decoder, който декодира с помощта на базовата схема за кодиране base64.
публичен статичен Base64.Encoder getEncoder() Той връща Base64.Encoder, който кодира с помощта на базовата схема за кодиране base64.
публичен статичен Base64.Decoder getUrlDecoder() Той връща Base64.Decoder, който декодира с помощта на схемата за кодиране base64 на безопасен тип URL адрес и име на файл.
публичен статичен Base64.Decoder getMimeDecoder() Той връща Base64.Decoder, който декодира с помощта на MIME тип схема за декодиране base64.
публичен статичен Base64.Encoder getMimeEncoder() Той връща Base64.Encoder, който кодира с помощта на MIME тип схема за кодиране base64.
public static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) Той връща Base64.Encoder, който кодира с помощта на MIME тип схема за кодиране base64 с указана дължина на реда и разделители на реда.
публичен статичен Base64.Encoder getUrlEncoder() Той връща Base64.Encoder, който кодира с помощта на схемата за кодиране base64 на безопасен тип URL адрес и име на файл.

Base64.Decoder Методи

Методи Описание
публичен байт [] декодиране (байт [] src) Той декодира всички байтове от входния байтов масив, като използва схемата за кодиране Base64, записвайки резултатите в новоразпределен изходен байтов масив. Върнатият байтов масив е с дължината на получените байтове.
публичен байт [] декодиране (низ src) Той декодира Base64 кодиран низ в новоразпределен байтов масив, като използва схемата за кодиране Base64.
публично int декодиране (байт [] src, байт [] dst) Той декодира всички байтове от входния байтов масив, като използва схемата за кодиране Base64, като записва резултатите в дадения изходен байтов масив, започвайки от отместване 0.
публичен ByteBuffer декодиране (ByteBuffer буфер) Той декодира всички байтове от входния байтов буфер, като използва схемата за кодиране Base64, като записва резултатите в новоразпределен ByteBuffer.
публична обвивка на InputStream (InputStream е) Той връща входен поток за декодиране на Base64 кодиран байтов поток.

Методи на Base64.Encoder

Методи Описание
публичен байт [] кодиране (байт [] src) Той кодира всички байтове от посочения байтов масив в новоразпределен байтов масив, като използва схемата за кодиране Base64. Върнатият байтов масив е с дължината на получените байтове.
публично int кодиране (байт [] src, байт [] dst) Той кодира всички байтове от посочения масив от байтове, като използва схемата за кодиране Base64, записвайки получените байтове в дадения изходен масив от байтове, започвайки от отместване 0.
публичен низ encodeToString(байт[] src) Той кодира посочения масив от байтове в низ, като използва схемата за кодиране Base64.
публично кодиране на ByteBuffer (буфер на ByteBuffer) Той кодира всички оставащи байтове от посочения байтов буфер в новоразпределен ByteBuffer, като използва схемата за кодиране Base64. При връщане позицията на изходния буфер ще бъде актуализирана до своя лимит; неговият лимит няма да е променен. Позицията на върнатия изходен буфер ще бъде нула и ограничението му ще бъде броят на получените кодирани байтове.
публична обвивка на OutputStream (OutputStream os) Той обвива изходен поток за кодиране на байтови данни, използвайки схемата за кодиране Base64.
публичен Base64.Encoder withoutPadding() Той връща екземпляр на енкодер, който кодира еквивалентно на този, но без да добавя символ за допълване в края на кодираните байтови данни.

Пример за Java Base64: Основно кодиране и декодиране

 import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getEncoder(); // Creating byte array bytebyteArr[] = {1,2}; // encoding byte array bytebyteArr2[] = encoder.encode(byteArr); System.out.println('Encoded byte array: '+byteArr2); bytebyteArr3[] = newbyte[5]; // Make sure it has enough size to store copied bytes intx = encoder.encode(byteArr,byteArr3); // Returns number of bytes written System.out.println('Encoded byte array written to another array: '+byteArr3); System.out.println('Number of bytes written: '+x); // Encoding string String str = encoder.encodeToString('JavaTpoint'.getBytes()); System.out.println('Encoded string: '+str); // Getting decoder Base64.Decoder decoder = Base64.getDecoder(); // Decoding string String dStr = new String(decoder.decode(str)); System.out.println('Decoded string: '+dStr); } } 

Изход:

 Encoded byte array: [B@6bc7c054 Encoded byte array written to another array: [B@232204a1 Number of bytes written: 4 Encoded string: SmF2YVRwb2ludA== Decoded string: JavaTpoint 

Пример за Java Base64: URL кодиране и декодиране

 import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting encoder Base64.Encoder encoder = Base64.getUrlEncoder(); // Encoding URL String eStr = encoder.encodeToString('http://www.javatpoint.com/java-tutorial/'.getBytes()); System.out.println('Encoded URL: '+eStr); // Getting decoder Base64.Decoder decoder = Base64.getUrlDecoder(); // Decoding URl String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded URL: '+dStr); } } 

Изход:

 Encoded URL: aHR0cDovL3d3dy5qYXZhdHBvaW50LmNvbS9qYXZhLXR1dG9yaWFsLw== Decoded URL: http://www.javatpoint.com/java-tutorial/ 

Пример за Java Base64: MIME кодиране и декодиране

 package Base64Encryption; import java.util.Base64; publicclass Base64BasicEncryptionExample { publicstaticvoid main(String[] args) { // Getting MIME encoder Base64.Encoder encoder = Base64.getMimeEncoder(); String message = 'Hello, 
You are informed regarding your inconsistency of work'; String eStr = encoder.encodeToString(message.getBytes()); System.out.println('Encoded MIME message: '+eStr); // Getting MIME decoder Base64.Decoder decoder = Base64.getMimeDecoder(); // Decoding MIME encoded message String dStr = new String(decoder.decode(eStr)); System.out.println('Decoded message: '+dStr); } } 

Изход:

 Encoded MIME message: SGVsbG8sIApZb3UgYXJlIGluZm9ybWVkIHJlZ2FyZGluZyB5b3VyIGluY29uc2lzdGVuY3kgb2Yg d29yaw== Decoded message: Hello, You are informed regarding your inconsistency of work