一种替换加密的实现方式。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
short hash[36];
char alphabet[]="0123456789abcdefghijklmnopqrstuvwxyz";
int index(char ch);
int main(){
FILE * file = fopen("alphabet.txt","w+");
fputs(alphabet,file);
fputc('\n',file);
srand((unsigned)time(NULL));
char input[101];
short position[36];
//gets(input);
scanf("%s",input);
for(int i=0;i<36;i++){
int temp;
while(hash[temp=rand()%36])
;
hash[temp]=1;
position[i]=temp;
}
puts(input);
for(int i=0;input[i]!='\0';i++)
printf("%c",alphabet[position[index(input[i])]]);
for(int i=0;i<36;i++)
fputc(alphabet[position[i]],file);
printf("\n");
fclose(file);
return 0;
}
int index(char ch){
if(ch>='a'&&ch<='z')
return ch-'a'+10;
else
return ch-'0';
}
逻辑很简单,就不做过多介绍了,输入需要加密字符串,输出加密后的字符串,并将对应替换字符存储到apphabet.txt中