- 实现了简单的数据缓冲区异或加密
- malloc函数好像未判断失败,可以完善下
void pycrypt_enxor(char* data, size_t n_data, const char* key, size_t n_key) { char* p = malloc(n_key); memcpy(p, key, n_key); size_t n_res_size = n_data % n_key; char* data_loop_bound = data + n_data - n_res_size; size_t i = 0; for (; data < data_loop_bound; data += n_key) { for (i = 0; i < n_key; ++i) { data[i] ^= p[i]; p[i] = data[i]; } } for (i = 0; i < n_res_size; ++i) { data[i] ^= key[i]; p[i] = data[i]; } free(p);}void pycrypt_dexor(char* data, size_t n_data, const char* key, size_t n_key) { char* p = malloc(n_key); memcpy(p, key, n_key); size_t n_res_size = n_data % n_key; char* data_loop_bound = data + n_data - n_res_size; size_t i = 0; for (; data < data_loop_bound; data += n_key) { for (i = 0; i < n_key; ++i) { char c = data[i]; data[i] ^= p[i]; p[i] = c; } } for (i = 0; i < n_res_size; ++i) { data[i] ^= key[i]; p[i] = data[i]; } free(p);}