匠迹众包
24人浏览/1人投稿
43天前
待托管赏金
void Crypto (void* Data, int DataLength, void* Key, int KeyLength)
{
int i = 0, j = 0;
unsigned char k[256] = { 0 }, s[256] = { 0 };
unsigned char tmp = 0;
for (i = 0; i < 256; i++)
{
s[i] = (unsigned char)i;
k[i] = ((unsigned char*)Key)[i % (unsigned int)KeyLength];
}
for (i = 0; i < 256; i++)
{
j = (j + s[i] + k[i]) % 256;
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
int t = 0;
unsigned long l = 0;
i = 0, j = 0, tmp = 0;
for (l = 0; l < (unsigned int)DataLength; l++)
{
i = (i + 1) % 256;
j = (j + s[i]) % 256;
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
t = (s[i] + s[j]) % 256;
((unsigned char*)Data)[l] ^= s[t];
}
}
改成易语言。参数1 Data 字节集,参数2 Key 字节集,无返回值
接单1天内完成任务