永发信息网

C语言对称及可逆加密算法,急!!!

答案:1  悬赏:0  手机版
解决时间 2021-12-23 19:59
  • 提问者网友:斑駁影
  • 2021-12-23 03:26
对固定字符串“AbcdXYZ2014”,或者用户输入的字符串,以【GodKnow】为密钥进行加密。

加密规则:原始信息中的每个字符,和密钥中相应位置字符进行异或操作。显示加密后的信息。再尝试对密文解密,并打印,比较是否和原文相同。
最佳答案
  • 五星知识达人网友:几近狂妄
  • 2021-12-23 04:01
#include 
#include 

void Encode(char s[],char key[]) {
int i,j,k,t,ch;
char tmp[9];
int len = strlen(key);
for(i = 0,j = 0; s[i]; ++i) {
t = key[j];
for(k = 0; k < 8; ++k) {
tmp[k] = (s[i] & 1) ^ (t & 1);
s[i] >>= 1;
t >>= 1;
}
ch = 0;
for(k = 7; k >= 0; --k)
ch = 2 * ch + tmp[k];
s[i] = ch;
j = (j + 1) % len;
}
}

int main() {
char s[] = "AbcdXYZ2014";
char key[] = "GodKnow";
printf("明文:%s\n",s);
Encode(s,key);
printf("密文:\n%s\n",s);
Encode(s,key);
printf("明文:%s\n",s);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯