字符串算法实习,数据置乱

输入可包含所有可见字符的字符串,并随机产生一个置乱表作为密钥保存到文件并显现出来,然后根据置乱表进行数据变换加密。在解密时导入文件中的替换表,根据该置乱表解密。
例:输入字符串abcdef,输出daebcf

你的例子输入字符串abcdef,输出daebcf,,这不是将字符串排序打乱了吗,如果要用加密,用md5就可以了

你好同学,代码供参考:

#include <stdio.h> 
#include <stdlib.h>
#include <time.h>
int main(){
    int num, i, j;
    int keys[26], p[26], temp;
    char words[1000], encodewords[1000];
    srand((unsigned)time(NULL));
    for(i=0;i<26;i++) p[i]=rand();
    for(i=0;i<26;i++) keys[i]=i;
    for(i=0;i<26;i++){
        for(j=0;j<i;j++)
        if(p[i]>p[j]) {
            temp=p[i];
            p[i]=p[j];
            p[j]=temp;
            temp=keys[i];
            keys[i]=keys[j];
            keys[j]=temp;
        }
    }
    printf("加密密钥:\n") ;
    for(i=0;i<26;i++)printf("%d ", keys[i]);
    printf("\n请输入需要加密的字母(小写)\n");
    scanf("%s",&words);
    for(num=0;words[num]!='\0';num++);
    for(i=0;i<num;i++){
        j=words[i]-'a';
        encodewords[i]=keys[j]+'a';
    }
    printf("加密后为%s", encodewords);
    
}