gpt4 book ai didi

找不到代码中的错误

转载 作者:行者123 更新时间:2023-11-30 21:12:08 25 4
gpt4 key购买 nike

我编写加密\解密系统(原型(prototype))。该系统有188字节的数据包。并加扰:

加密(Python):

#key = 40
packet[4]+packet[40:]+packet[4:40]

解密(C):

//in_buffer - main char* massive
//offs - offset of packet (length 188)
//key - int for separator (40 in example before)

void encryption(byte* in_buffer, int offs, int key)
{
byte temp[188];
int i;
//write packet[4:40] to temp
for(i = 4;i < key; i++)
{
temp[i] = in_buffer[offs+i];
}
//write packet[40:] to top
for(i = 4;i < 188 - key+4; i++)
{
in_buffer[offs+i] = in_buffer[offs+i+key-4];
}
//write packet[4:40] of temp to in_buffer[152:]
for(i = 4;i < key; i++)
{
in_buffer[offs+i+188-key] = temp[i];
}
}

它适用于 key = 96,但不适用于任何其他键!为什么?

最佳答案

所有数组下标算术都是令人讨厌且容易出错的。使用 memcpy 将各个部分“附加”到位:

byte temp[188];
int pos = 0;

memcpy(temp + pos, in_buffer, 4); // append in_buffer[:4]
pos += 4;
memcpy(temp + pos, in_buffer + 188 - key + 4, key - 4); // append in_buffer[188-key+4:188]
pos += key-4;
memcpy(temp + pos, in_buffer + 4, 188 - key); // append in_buffer[4:188-key+4]

关于找不到代码中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12529075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com