c语言字母加密

c语言字母加密,第1张

按照你的要求编写的字母加密的C语言程序如下

(姓字母向后移两位,名字母向后移三位)

#include<stdioh>

#include<stringh>

int main(){

char src[30],result[]="",ch[2]={'\0'};

int i,j,len;

fgets(src,30,stdin);

len=strlen(src);

for(i=0;src[i]!=' ';i++){

if('a'<=src[i] && src[i]<='z'){

ch[0]=(char)(((src[i]-'a')+2)%26+'a');

strcat(result,ch);

}else if('A'<=src[i] && src[i]<='Z'){

ch[0]=(char)(((src[i]-'A')+2)%26+'A');

strcat(result,ch);

}else{

ch[0]=src[i];

strcat(result,ch);

}

}

for(j=i;j<len;j++){

if('a'<=src[j] && src[j]<='z'){

ch[0]=(char)(((src[j]-'a')+3)%26+'a');

strcat(result,ch);

}else if('A'<=src[j] && src[j]<='Z'){

ch[0]=(char)(((src[j]-'A')+3)%26+'A');

strcat(result,ch);

}else{

ch[0]=src[j];

strcat(result,ch);

}

}

printf("%s\n",result);

return 0;

}

C语言异或加密实现的原理为,将任意值,与相同值两次异或后,结果与原值相同。所以可以通过将源数据与一个固定的值(秘钥key)异或后,得到密文,然后将密文再次与秘钥异或,得到原文。这样就实现了异或加密及解密。

C语言中的异或是一种按位 *** 作的计算,其计算原理为, *** 作数对应位上的值相同,则结果位上值为0,否则为1异或的运算符号为^,于是真值表如下:

0^0=0

0^1=1

1^0=1

1^1=0

这样区分源数据和秘钥值,有如下四种可能:

0^0=0 0^0=0

0^1=1 1^1=0

1^0=1 1^0=1

1^1=0 0^1=1

以上是将一个值,用另一个值连续异或两次后的计算过程,可以看到,最终的值与原始值是相同的。这就是异或加密的基础原理。

以上就是关于c语言字母加密全部的内容,包括:c语言字母加密、C语言 异或加密、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10078351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存