728x90
HMAC SHA256을 접했다. json형태의 데이터와 특정한 키를 가지고 HASHKEY를 만들어주는데 json형태의 데이터가 스페이스 한번이라도 들어가면 다른 hashkey를 내뱉는다. 값이 일정치 않아서 만들었다. 만들고 나니 사용할 일이 별로 없네..
0x20 : space
0x0A : LF(개행)
0x09 : tab
int main()
{
char *databody = "{\n \"dataHeader\" : {\n \"udId\" : \"UDID\",\n }\n}";
char* shift_data = malloc(sizeof(char) * strlen(databody));
shift_json(shift_data, databody);
printf("[%s]\n", shift_data);
free(shift_data);
return 0;
}
char* shift_json(char* pshift_jsonformat, char* pjsonformat)
{
/* 스페이스(공백), 개행, tab 제거...cf..." " 사이에 있으면 제거 안함 */
int i, j, check = 0; // i는 원데이터, j는 복사본, check은 더블커텐션 체킹
for(i = 0, j = 0 ; i < strlen(pjsonformat) ; i++)
{
if( check == 0 && pjsonformat[i] == '\"')
{
pshift_jsonformat[j++] = pjsonformat[i];
check = 1;
}
else if( check == 0 && (pjsonformat[i] != 0x20 && pjsonformat[i] != 0x0A && pjsonformat[i] != 0x09) ) // space, lf, tab
pshift_jsonformat[j++] = pjsonformat[i];
else if( check == 1 && pjsonformat[i] != '\"')
pshift_jsonformat[j++] = pjsonformat[i];
else if( check == 1 && pjsonformat[i] == '\"')
{
pshift_jsonformat[j++] = pjsonformat[i];
check = 0;
}
}
return pshift_jsonformat;
}
조금 다르게..밑에꺼가 더 믿을만하다
int JSON_SHIFT(char* pzjsonformat)
{
int ii, jj, ncheck = 0;
char pzshift_jsonformat[strlen(pzjsonformat)];
memset(pzshift_jsonformat, 0x00, sizeof(pzshift_jsonformat));
for(ii = 0, jj = 0 ; ii < strlen(pzjsonformat) ; ii++)
{
if( ncheck == 0 && pzjsonformat[ii] == '\"')
{
pzshift_jsonformat[jj++] = pzjsonformat[ii];
ncheck = 1;
}
else if( ncheck == 0 && (pzjsonformat[ii] != 0x20 && pzjsonformat[ii] != 0x0A && pzjsonformat[ii] != 0x09) ) // space, lf, tab
pzshift_jsonformat[jj++] = pzjsonformat[ii];
else if( ncheck == 1 && pzjsonformat[ii] != '\"')
pzshift_jsonformat[jj++] = pzjsonformat[ii];
else if( ncheck == 1 && pzjsonformat[ii] == '\"')
{
pzshift_jsonformat[jj++] = pzjsonformat[ii];
ncheck = 0;
}
}
for(ii = jj ; ii < strlen(pzjsonformat) ; ii++)
pzjsonformat[ii] = 0x00;
memset(pzjsonformat, 0x00, strlen(pzjsonformat));
memcpy(pzjsonformat, pzshift_jsonformat, strlen(pzshift_jsonformat)) ;
return 0;
}
728x90
'개발 업무(코딩)-개발자였을때 썼던..' 카테고리의 다른 글
C-JSON EXAMPLE 예제 2 - ARRAY (0) | 2023.01.09 |
---|---|
C-JSON EXAMPLE 예제 #include<json/json.h> (0) | 2023.01.09 |
embedded python with C (0) | 2023.01.09 |
개발 업무..확장가능한 키움 open api(조회성) (0) | 2023.01.08 |
KIWOOM API를 이용한 주식 일자별 시세 수집(python) (0) | 2023.01.08 |