实训一:编程实现Caesar密码
Caesar密码算法如下:
加密算法:c = E(m,k) = (m + k) mod q
解密算法:m = D(c,k) = (c - k) mod q
特定地(恺撒密码):m = c = Zq , q = 26;
例:(k=3)
明文:meet me after the party
密文:phhw ph diwhu wkh sduwb
开发环境:C free
要求:
1、 每组均要实现加密和解密算法。
2、 程序代码文件名为“组长姓名.C”。在程序的第一段加注释,写明组员分工情况。
3、 在下课之前提交。
附:C语言字符串处理
由于c语言不支持字符串这种变量类型,所以,只好用字符数组来实现它的功能。字符串是最后一个字符为NULL字符的字符数组。例如:
char cArr[] = {'Q', 'U', 'A', 'N', 'X', 'U', 'E', '\0'};
//因为最后有NULL,所以这就变成了字符串
gets()和puts()是字符串的输入输出,是标准函数,在stdio.h中被定义。
字符串常用函数:
strlen()函数——求字符串长度。
函数名: stpcpy
功能: 拷贝一个字符串到另一个
用法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
stpcpy(string, str1);
printf("%s\n", string);
return 0;
}
函数名: strcat
功能: 字符串拼接函数
用法: char *strcat(char *destin, char *source);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%s\n", destination);
return 0;
}
函数名: strupr
功能: 将串中的小写字母转换为大写字母
用法: char *strupr(char *str);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%s\n", ptr);
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论