色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c md5加密json

MD5(摘要算法)是一種常用的加密算法,它將任意長(zhǎng)度的明文數(shù)據(jù)經(jīng)過(guò)處理后輸出固定長(zhǎng)度的密文。在C語(yǔ)言中,有現(xiàn)成的庫(kù)可以用來(lái)實(shí)現(xiàn)MD5加密,一般使用的庫(kù)是openssl。下面我們講解一下如何使用C語(yǔ)言中的openssl庫(kù)對(duì)JSON數(shù)據(jù)進(jìn)行MD5加密。

#include#include#include#include "json-c/json.h"
int main(int argc, char const *argv[])
{
unsigned char c[MD5_DIGEST_LENGTH];
int i;
MD5_CTX mdContext;
char *jsonData = "{\"name\": \"Tom\", \"age\": 18, \"gender\": \"male\"}";
/*解析JSON數(shù)據(jù)*/
struct json_object *jsonObj;
jsonObj = json_tokener_parse(jsonData);
/*構(gòu)建要加密的明文數(shù)據(jù)*/
char jsonString[1024];
sprintf(jsonString, "%s", json_object_to_json_string(jsonObj));
/*計(jì)算MD5值*/
MD5_Init(&mdContext);
MD5_Update(&mdContext, jsonString, strlen(jsonString));
MD5_Final(c, &mdContext);
/*將加密結(jié)果以十六進(jìn)制的形式輸出*/
for(i = 0; i< MD5_DIGEST_LENGTH; i++) printf("%02x", c[i]);
printf("\n");
return 0;
}

上述代碼中,我們用字符串的形式存儲(chǔ)JSON數(shù)據(jù),通過(guò)json_tokener_parse函數(shù)將字符串解析成一個(gè)json_object對(duì)象。然后,使用json_object_to_json_string函數(shù)將json_object對(duì)象轉(zhuǎn)換成字符串形式,用于進(jìn)行MD5加密。最后調(diào)用openssl庫(kù)中的MD5函數(shù),計(jì)算出密文。整個(gè)過(guò)程比較簡(jiǎn)單。