Base64是將二進制數據編碼成可打印字符的一種編碼方式,常用于網絡傳輸和數據存儲。C語言提供了Base64編碼和解碼函數,可以很方便地對數據進行加密和解密。
在Web開發和移動開發中,JSON數據是常用的數據格式之一。為了保護數據的安全性,可以使用Base64加密JSON數據。以下是使用C語言對JSON數據進行Base64加密的代碼:
#include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #include <openssl/bio.h> #include <openssl/evp.h> #include <openssl/buffer.h> char* base64_encode(const unsigned char* input, int length) { BIO *bmem, *b64; BUF_MEM *bptr; b64 = BIO_new(BIO_f_base64()); bmem = BIO_new(BIO_s_mem()); b64 = BIO_push(b64, bmem); BIO_write(b64, input, length); BIO_flush(b64); BIO_get_mem_ptr(b64, &bptr); char* buff = (char *)malloc(bptr->length+1); memcpy(buff, bptr->data, bptr->length); buff[bptr->length] = '\0'; BIO_free_all(b64); return buff; } int main() { // 原始JSON數據 char* data = "{\"name\":\"Tom\",\"age\":18,\"address\":\"Beijing\"}"; // 計算JSON數據長度 int length = strlen(data); // 使用Base64加密JSON數據 char* encoded_data = base64_encode((const unsigned char*)data, length); // 打印加密后JSON數據 printf("Encoded JSON data: %s\n", encoded_data); // 釋放內存 free(encoded_data); return 0; }