我想使用ANSi代码加密数据,但加密后数据保持不变

时间:2017-05-22 15:19:20

标签: c encryption

我想使用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;
}

有人可以告诉我我的代码或加密方法有什么问题吗?非常感谢!

0 个答案:

没有答案