Rumah  >  Artikel  >  Java  >  Bagaimana untuk mengekod dan menyahkod menggunakan fungsi Base64 dalam Java

Bagaimana untuk mengekod dan menyahkod menggunakan fungsi Base64 dalam Java

WBOY
WBOYasal
2023-06-26 14:24:583118semak imbas

Dalam pengaturcaraan java, selalunya diperlukan untuk menukar data binari kepada format teks untuk penghantaran, dan pengekodan Base64 ialah kaedah penukaran yang biasa digunakan.

Base64 menukar tiga bait data kepada empat bait data teks. Data teks terdiri daripada 64 aksara Ia hanya mengandungi aksara yang boleh dicetak, jadi ia boleh dihantar dalam protokol seperti e-mel dan mesej permintaan HTTP. Java menyediakan pengekodan dan penyahkodan Base64 API, jadi kami boleh menukar data dengan mudah.

Artikel ini akan memperkenalkan cara menggunakan Base64 untuk mengekod dan menyahkod data dalam Java.

1. Gunakan kaedah Base64 yang disediakan oleh Java8 dan ke atas

Java8 dan ke atas menyediakan kelas Base64, dan kami boleh terus menggunakan kaedah yang disediakan untuk operasi pengekodan dan penyahkodan.

  1. Pengekodan Base64

Pengekodan Base64 ialah proses menukar data binari ke dalam bentuk teks Java menyediakan beberapa API untuk melaksanakan proses pengekodan Base64 dengan mudah.

String str = "Java Base64编码解码";
byte[] data = str.getBytes("UTF-8");
String result = Base64.getEncoder().encodeToString(data);
System.out.println(result);

Hasil keluaran ialah: SmF2YSBCYXNlNjQgY29tbWl0IGplZmFjdGlvbg==

Kaedah getBytes() digunakan untuk mendapatkan tatasusunan bait yang sepadan dengan rentetan, dan kaedah Base64.getEncoder() encode digunakan untuk operasi pengekodan(). tukar tatasusunan bait kepada rentetan A dalam format berkod Base64.

  1. Base64 penyahkodan

sepadan dengan pengekodan ialah proses menukar rentetan dalam format Base64 kepada data binari. Begitu juga, Java menyediakan API untuk melaksanakan proses penyahkodan Base64 dengan mudah.

String text = "SmF2YSBCYXNlNjQgY29tbWl0IGplZmFjdGlvbg==";
byte[] data = Base64.getDecoder().decode(text);
String result = new String(data, "UTF-8");
System.out.println(result);

Hasil output ialah: pengekodan dan penyahkodan Java Base64

Antaranya, kaedah Base64.getDecoder().decode() boleh menyahkod rentetan format Base64 ke dalam tatasusunan bait, dan kaedah String() baharu menukar bait tatasusunan ke dalam rentetan.

2. Gunakan Apache Commons Codec untuk melaksanakan pengekodan dan penyahkodan Base64

Pustaka Apache Commons Codec ialah projek sumber terbuka di bawah Apache. Selain daripada Base64, ia juga termasuk Hex, URL, Soundex dan kaedah pengekodan lain. Di sini, kami hanya memperkenalkan cara menggunakan perpustakaan Codec Commons untuk pengekodan dan penyahkodan Base64.

  1. Pengekodan Base64
String str = "Java Base64编码解码";
byte[] data = str.getBytes("UTF-8");
String result = org.apache.commons.codec.binary.Base64.encodeBase64String(data);
System.out.println(result);

Hasil output adalah sama seperti di atas.

Di sini, kami memanggil kaedah encodeBase64String() dalam kelas org.apache.commons.codec.binary.Base64 untuk melaksanakan pengekodan Base64 Kaedah ini akan menukar tatasusunan bait kepada rentetan format Base64.

  1. Base64 penyahkodan
String text = "SmF2YSBCYXNlNjQgY29tbWl0IGplZmFjdGlvbg==";
byte[] data = org.apache.commons.codec.binary.Base64.decodeBase64(text);
String result = new String(data, "UTF-8");
System.out.println(result);

Hasil output adalah sama seperti di atas.

Di sini, kami memanggil kaedah decodeBase64() dalam kelas org.apache.commons.codec.binary.Base64 untuk melaksanakan penyahkodan Base64. Kaedah decodeBase64() menukar rentetan berformat Base64 kepada tatasusunan bait.

Ringkasan:

Sama ada anda menggunakan kelas Base64 yang disediakan oleh Java8 atau perpustakaan Apache Commons Codec, anda boleh melakukan pengekodan dan penyahkodan Base64 dengan mudah. Kaedah mana yang hendak digunakan bergantung pada situasi tertentu. Dalam pengaturcaraan sebenar, kita perlu memilih kaedah mana yang hendak digunakan mengikut keperluan kita.

Atas ialah kandungan terperinci Bagaimana untuk mengekod dan menyahkod menggunakan fungsi Base64 dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn