编程学习网 > 编程语言 > C/C++开发 > C语言编写简单加密程序(c语言编程加密)
2022
12-03

C语言编写简单加密程序(c语言编程加密)

今天编程学习网为大家讲解C语言编写简单加密程序(c语言编程加密),有需要的小伙伴可以参考一下:

一个简单的加密程序主要由加密函数和解密函数构成,解密函数应用密钥对数据进行加密,解密函数应用密钥对加密后的数据进行解密,并返回解密后的数据。凯撒密码可以实现对英文文本的简单解密和解密,其加密过程是将英文对应的字母移动一定位置,例如加密Hello,若将Hello的每个字母往右移动两个位置,则Hello就被加密为Jgnq,解密时将Jgnq往左移动两个位置,Jgnq就被解密为Hello,移动的位置就是加密程序的密钥。

编程案例:编写一个程序,使用凯撒密码对用户输入的英文单词进行加密和解密,密钥由用户输入。

编程步骤:

(1)定义存储字母大小写的数组

char lower[26]={'a','b',……,'y','z'};

char capital[26]={'A','B',……,'Y','Z'};

数组lower存储26个英文小写字母,数组capital存储26个英文大写字母,对英文单词进行加密时,需要对大小写字母分别处理。

(2)定义加密函数

void encode(char word[],int key)

{

int i,k,m;

for(i=0;word[i]!='\0';i++)

{

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

{

k=word[i]-'a';

m=(k+key)%26;

word[i]=lower[m];

}

else if('A'<=word[i] && word[i]<='Z')

{

k=word[i]-'A';

m=(k+key)%26;

word[i]=capital[m];

}

}

}

加密函数传入两个参数word[]keyword[]为存储待加密单词的字符数组,加密后的密文也存储到该数组,返回给调用者。加密函数使用for循环遍历word字符数组,在循环过程中,对word内的大小写字母分别进行加密,小写字母的加密过程为:(1)当前字母减去小写字母aASCII码差值赋值给变量k,变量k为当前字母对于字母a的偏离程序;(2)计算当前字母移动key个位置后的字母表索引m,其计算过程为变量k的值加上密钥key(字母的移动次数)与26取模,对26取模保证m始终位于025之间,最后将索引为m的小写字母表的字母赋值给索引为iword元素。对大写字母的处理过程和小写字母完全相同。

(3)定义解密函数

void decode(char word[],int key)

{

int i,k,m;

for(i=0;word[i]!='\0';i++)

{

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

{

k=word[i]-'a';

m=(k-key)%26;

word[i]=lower[m];

}

else if('A'<=word[i] && word[i]<='Z')

{

k=word[i]-'A';

m=(k-key)%26;

word[i]=capital[m];

}

}

解密函数的处理过程和加密函数基本相同,不同之处是字母的移动位置与加密函数的移动位置方向相反。

以上就是“C语言编写简单加密程序(c语言编程加密)”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取