chunked 编码 解码 c算法

本文介绍了一种名为Chunked的编码方式及其解密方法。该编码通过定义块大小及内容来组织数据,每块由块大小、回车换行符及相应数量的数据组成。文章详细解释了解密主函数prechunk的工作流程,包括读取块大小、提取数据并重组为明文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// chunked01.cpp : Defines the entry point for the console application.
//

/***************************************************
*            Revision Log Entry
*    Copyright (C) 2005 YAPCOM Corporation.
*
*            All Rights Reserved.
* File Name    : chunked01.cpp
* Version    : 1.0.0
* Author    : Yap
* Comments    : 解密chunked格式的内容
*
* History:
* Date                Modify By        Comments
* 2007-7-29 0:27:56    Yap                Create...
**************************************************/


#include "stdafx.h"
#include <stdlib.h>
#include <string.h>

//decode && encrypt

/**************************************************
* Function Name    : prechunk
* File Name        : chunked01.cpp
* Return Type    : bool
* Argument        : char * str
* Description    : 解密主函数,原理 首先出现真正内容的个数,然后回车换行(CRLF),接下来是主要内容
现实完规定的个数之后,就又是回车换行(CRLF)。以上就是一个块,块的格式如下

正文个数
CRLF
正文
CRLF
如果文件到结束,会出现
0正文个数显示如下:
0
CRLF
CRLF
//自此文件结束

* Created By    : Yap
*
* History        :
* Date                Modified By         Comment
* 2007-7-29 0:28:14    Yap                    Create...
*************************************************/
char * prechunk(char * str)
{
    //char * str="1a/r/n1234567890dfdfddfweiiouury/r/n1e/r/ndfdfssddffsddffffffdssssssdfex/r/n1d/r/ndfdfssddffsddffffffdssssssdfe/r/n0/r/n/r/n";
    char str1[10],*str2;
    int len = 0,pos = 0,count = 0;

    sscanf(str, "%x", &len);
    sscanf(str, "%s", str1);
    pos+=strlen(str1);
    pos+=2;
    str2= (char *)malloc(len+1);
    memset(str2,0,len+1);
    strncpy(str2,str+pos,len);
    count = len;

    while(1)
    {
        pos+=len;
        pos+=2;
        sscanf(str+pos, "%x", &len);
        sscanf(str+pos, "%s", str1);
        if (len == 0) break;
        count +=len;
        pos+=strlen(str1);
        pos+=2;
        str2 = (char *)realloc(str2,count+1);
        strncat(str2,str+pos,len);
   }
    strset(str,0);
    strcpy(str,str2);
    free (str2);
    return str;
}


int main(int argc, char* argv[])
{
    char * str="1a/r/n1234567890dfdfddfweiiouury/r/n1e/r/ndfdfssddffsddffffffdssssssdfex/r/n1d/r/ndfdfssddffsddffffffdssssssdfe/r/n0/r/n/r/n";
    char *str1=(char*)malloc(strlen(str)+1);
    strcpy(str1,str);

    prechunk(str1);
    printf("%s/n",str);
    printf("%s/n",str1);
}

>> 本文件内容为 https://fmkp.jnrcb.com.cn/api-yxy-out/api/middleware/app/realNameAuthentication/authentication 的请求抓包详情,供您分析和定位问题。 1. 请求内容 Request: POST /api-yxy-out/api/middleware/app/realNameAuthentication/authentication HTTP/1.1 Host: fmkp.jnrcb.com.cn Connection: keep-alive Content-Length: 392 Sign-Version: v2 X-Token: 9HYRC+SGoMc1NB8rab1q2g== content-type: application/json f3qq1: b0WqWs7AMNEozrkjtpU5oR5mjYMSwZTOM7MarW_goTFFK9UjAQ_lFWgtCA18K6ciwE5UC_AHb9b_9xpMz2Jg1v8m53MAHlaFd5hVOi9l40vzPK78FSN.R4Ck37Ah6byeDU0LaKHzQE8MjOONgKcSIlVQCqTmZyUVmV17YcMEeYy667B66OEl52Z219x6ft59OOLt3coMUTGXcUeqif9wvHEe9mkLEpz3.cE_V.JUEJ.6bj5wIeskbBUTYgsEFXGz99qyYakSzPOKYQozE9hzKnnf5BZISC0_ZauOKTBXGLW3sO5616OPRUcXQ1Cbl_7CqH6qb75PpoLK2T5.Rs26XxoJqvaTxkbL7tldj_tzu_dzpRgJbJmF1bipZwbZbU91ox2mIpbBaLIhHyM03c9krYdfBqVnrEXa8rIBfn3tJhec.NiX6Lbof_JRrh29.LJT09tsa3u1kkwdwyCYBIGkMt1OCvseDHW0iaSc53pFkQJSbOfw3WDTmzB74BoXGWJV5E5QfSwALFaoUBttAabwLPiRO_6HR1mzpy5uL50TsAywIEO2SadOkkv3veuKcygaMfzsQUOoQTwTO5DSckAT2Gi.wZnCv5LS3V5tTSTvMWaKcQRWQy77nV_BUvkZHs6PnPq7.iaXCL6fDVGiPwsjWozjw.KaHm7zBPkPKj2aCluZECMNwgfTqTSRUmddZJg1xq4dSzkLSAC8pph6Et9IiMKLg signature: jWNWV9V8o/XMjfY3QajX6y3Jj2KXJSaI68jUnOywMtI= timestamp: 1741363056936 nonce: 691042 Accept-Encoding: gzip,compress,br,deflate User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.56(0x18003836) NetType/WIFI Language/zh_CN Referer: https://servicewechat.com/wxc92d4a929315475b/216/page-frame.html f3qq1=b0JmW_9YJ06lSNv1wFhyWTDoZRy_YoI9bgDN2gpx7N2Om1oU3H6Cl7.pUOd8t1K_Sq2sEBZ8Zm0m5Hrwt75X9wmPJXKHsmonwcrK0tHaiSdn6ARtQYpViPq36zSSzajW5r0eTAkn4G.9c6k6fS7KnYcyEdldlCuMcdaiufMJI8D.y37O9nmUbtibkj70X1mnIj8C6_2gxVe55omx6BfticbP6bASygN9FLD5MFXvThar1wYel.C1c8E2rw.WC809Y914eQpll2RnIdcg0ilhIZLI_aBg1zPjz1ocvTr9CLqEOyc6.IMClO88_GCFQKVBUxFXLjkTIlKDqkCIA7LZEFzQVUIiTYRoawJttlAXjKfMErS1TqvnC0uH8oPpMLNu8O 2. 响应内容 Response: HTTP/1.1 200 Server: ****** Content-Type: application/json Transfer-Encoding: chunked Date: Fri, 07 Mar 2025 15:57:37 GMT Set-Cookie: BIGipServerpool_WAF_QMYXCX_ipv4_29292_to_9292=!js6HDXqFdZyin39UpAVs/fNUMmq28A/kUTQrnbiU8OiE4aKj2GRwUtrtA2bjeSWRxmgf6cbiFxDt; path=/; Httponly; Secure bavte: b0Gm2T9I6f.VzLxg2TJzR92So9DxQgvgxBGp9dYLBiN2xIl1u9qhtANSSEgeIwaFj7npQKJyzuvs2jPjnFNdtO1a Content-Encoding: gzip Set-Cookie: BIGipServerpool_ruishu_FMKP_ipv4_19292_to_9292=1376943882.23627.0000; path=/; Httponly; Secure Connection: Keep-alive Via: 1.1 ID-1716635744553530 uproxy-5 bavte=b0.KJzCQtcCm5jcT83TJNyYIgSTqkoEcfa3leCK0LjFSkh3Y8rEI2HEdByr4KeRQceERoeyXLhhjvAEj69qbifXAVIbjhG2jITMjLFUwhjiicbEvsKDKR5GzT8CoDH09erMhstMo3LBqTHNvdk83hgLYW6qIvTcDq0Q6F0P_UylQE 请帮我解密
03-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值