rc4.c

来自「文件夹加密工具(开源代码) 软件作者:dyforc 发现文件夹加密的软件」· C语言 代码 · 共 51 行

C
51
字号
#include "rc4.h"#define swap_byte(x,y) t = *(x); *(x) = *(y); *(y) = tvoid prepare_key(unsigned char *key_data_ptr, int key_data_len, rc4_key *key){  unsigned char t;  unsigned char index1;  unsigned char index2;  unsigned char* state;  short counter;  state = &key->state[0];  for(counter = 0; counter < 256; counter++)  state[counter] = (unsigned char)counter;  key->x = 0;  key->y = 0;  index1 = 0;  index2 = 0;  for(counter = 0; counter < 256; counter++)  {    index2 = (key_data_ptr[index1] + state[counter] + index2) % 256;    swap_byte(&state[counter], &state[index2]);    index1 = (index1 + 1) % key_data_len;  }}void rc4(unsigned char *buffer_ptr, int buffer_len, rc4_key *key){  unsigned char t;  unsigned char x;  unsigned char y;  unsigned char* state;  unsigned char xorIndex;  short counter;  x = key->x;  y = key->y;  state = &key->state[0];  for(counter = 0; counter < buffer_len; counter++)  {    x = (x + 1) % 256;    y = (state[x] + y) % 256;    swap_byte(&state[x], &state[y]);    xorIndex = (state[x] + state[y]) % 256;    buffer_ptr[counter] ^= state[xorIndex];  }  key->x = x;  key->y = y;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?