我想使用ANSI代码来加密结构String中的数据。但对我来说,手术后数据保持不变。 String是一个结构,包括一个字符串和我自己定义的字符串的大小,以及密钥。 这是我的代码:
String cipher(String textMsg, String key, Boolean isEncrypt){
int i,j;
String *newStr = (String *)malloc(sizeof(textMsg));
*newStr = textMsg;
if(DEBUG)
printf( "***%20s ***\n", __FUNCTION__ );
if(isEncrypt == FALSE){
for(i = 0, j = 0; i < textMsg.size; i ++, j ++){
newStr->addr[i] += key.addr[j%key.size];
newStr->addr[i] = rotate_fit(newStr->addr[i], 0, 127);
//the rotate function is shown below
}
}
else{
for(i = 0, j = 0; i < textMsg.size; i ++, j ++){
newStr->addr[i] -= key.addr[j%key.size];
newStr->addr[i] = rotate_fit(newStr->addr[i], 0, 127);
}
}
return *newStr;
}
int rotate_fit(int x, int min, int max){
if(x >= min && x <= max)
return x;
if(x < min)
return max+x+1;
if(x > max)
return x-max-1;
return 0;
}
有人可以告诉我我的代码或加密方法有什么问题吗?非常感谢!