哪位大佬可以吧下面的c语言转化成Python语言 10

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<memory.h>#defineFIRST_S... #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <memory.h>

#define FIRST_SEED (0xA1)
#define SECOND_SEED (0xA2)
#define THIRD_SEED (0xA3)

void my_xor(char *src , char* dst , int len , unsigned char seed)
{
unsigned char local_seed = seed;
int i = len;
for( i = len-1 ; i >= 0; i --)
{
dst[i] = src[i] ^ (local_seed);
local_seed = dst[i];
}
}

void de_xor(char *src , char* dst , int len , unsigned char seed)
{
int i = 0;
for( i = 0 ; i < len -1 ; i ++)
{
dst[i] = src[i] ^ src[i+1];
}

dst[i] = src[i] ^ seed;
}

void debugstr(char* dst){
char sn[256] = {0};

sprintf(sn, "%02X%02X%02X%02X%02X%02X%02X" , dst[0] &0xff,
dst[1] & 0xff,
dst[2] & 0xff,
dst[3] & 0xff,
dst[4] & 0xff,
dst[5] & 0xff,
dst[6] & 0xff
);

printf("D:%s\n", sn);

}

void encryption(char *src , char* dst , int len)
{
char temp_src[256];
char temp_dst[256];

memcpy(temp_src, src, len);
debugstr(temp_src);
my_xor(temp_src,temp_dst,len,FIRST_SEED);
debugstr(temp_dst);

my_xor(temp_dst,temp_src,len,SECOND_SEED);
my_xor(temp_src,temp_dst,len,THIRD_SEED);
memcpy(dst,temp_dst , len);
}

void decription(char *src, char* dst , int len)
{
char temp_src[256];
char temp_dst[256];

memcpy(temp_src, src, len);
de_xor(temp_src,temp_dst,len,THIRD_SEED);
de_xor(temp_dst,temp_src,len,SECOND_SEED);
de_xor(temp_src,temp_dst,len,FIRST_SEED);
memcpy(dst,temp_dst , len);
}

void print_mem(char* data, int len)
{
int i =0;
for( i = 0 ; i < len ; i ++)
{
printf("%02x " , data[i] & 0xff);
}
printf("\n");
}

void generate(int id , char* buf)
{
char src[256] = "abcdefg";
char dst[256];
char decripyt[256];
sprintf(src,"%07d",id);
int len = strlen(src);

printf("%s :%d\n", src, len);

encryption(src,dst,len);
decription(dst,decripyt,len);

printf("DEC: %s\n", decripyt);

if(memcmp(src,decripyt,len) != 0)
{
printf("Not equal!!!\n");
}

sprintf(buf, "%02X%02X%02X%02X%02X%02X%02X" , dst[0] &0xff,
dst[1] & 0xff,
dst[2] & 0xff,
dst[3] & 0xff,
dst[4] & 0xff,
dst[5] & 0xff,
dst[6] & 0xff
);
}

int main(int argc, char* argv[]){

char buf[200] = {0};

generate(161, buf);

printf("%s\n",sn);

exit(0);

}
展开
 我来答
捣蒜大师Edison
2019-05-12 · TA获得超过2963个赞
知道大有可为答主
回答量:3825
采纳率:77%
帮助的人:1343万
展开全部
差别很小的 懂python应该能看懂吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萍水相逢就是缘吧
2019-05-11 · TA获得超过6079个赞
知道大有可为答主
回答量:1.5万
采纳率:54%
帮助的人:2114万
展开全部
my god

有结果记得分享
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式