Base64編碼是一種把二進制數據轉換為可打印字符的編碼方式,Java和C都有現成的函數庫可以實現Base64編碼和解碼。
在Java中,可以使用java.util.Base64類的靜態方法進行編碼和解碼,如下:
//編碼 byte[] encodedBytes = Base64.getEncoder().encode(inputBytes); String encodedString = new String(encodedBytes); //解碼 byte[] decodedBytes = Base64.getDecoder().decode(encodedBytes);
而在C語言中,可以使用OpenSSL庫中的函數進行Base64編碼和解碼,如下:
#include <openssl/bio.h> #include <openssl/evp.h> #include <openssl/buffer.h> //編碼 int base64encode(char * input, int length, char* output) { BIO *bio, *b64; BUF_MEM *bufferPtr; b64 = BIO_new(BIO_f_base64()); bio = BIO_new(BIO_s_mem()); bio = BIO_push(b64, bio); BIO_write(bio, input, length); BIO_flush(bio); BIO_get_mem_ptr(bio, &bufferPtr); memcpy(output, bufferPtr->data, bufferPtr->length); output[bufferPtr->length] = 0; BIO_free_all(bio); return bufferPtr->length; } //解碼 int base64decode(char* input, int length, char* output) { BIO *bio, *b64; b64 = BIO_new(BIO_f_base64()); bio = BIO_new_mem_buf(input, length); bio = BIO_push(b64, bio); BIO_read(bio, output, length); output[length] = '\0'; BIO_free_all(bio); return length; }
通過以上代碼,可以實現在Java和C語言中進行Base64編碼和解碼的功能。