凯撒密码算法实验(共4页).doc
精选优质文档-倾情为你奉上班级: 学号: 姓名: 实验组别: 实验日期: 报告日期: 成绩: 报告内容:(目的和要求、原理、步骤、数据、计算、小结等)实验名称:凯撒密码算法实验一、 实验目的通过实验熟练掌握凯撒密码算法,学会凯撒密码算法程序设计,提高C+程序设计能力。二、实验要求(1)输入:任意的一段明文。(2)输出:根据加密算法,实现对明文的加密。(3)要求有对应的程序调试记录和验证记录。三、实验原理(流程图):四、实验数据(源代码):#include <iostream>#include <string>using namespace std;/获取密钥函数getKey()int getKey()int key;cout << "请输入密钥:"cin >> key;return key;/将明文中的字符全部转化为大写的函数change()void change(char s)int i;for(i = 0; i < strlen(s); i+)if(si > 96 && si < 122)si = si - 32;/判断输入的明文格式是否有误的函数getError()/有误则返回0,否则就返回1int getError(char s)int i,error;for(i = 0; i < strlen(s); i+)if(si > 65 && si <= 82)|(si > 96 && si <= 122)error = 1;else error = 0;break;return error;/将明文转化为密文的函数getCodevoid getCode(char s, char ss, int key)int i, j;cout << "译出的密文:"for(i = 0;i < strlen(ss); i+)for(j = 0;j < 26; j+)if(ssi = sj)cout << s(j+key)%26;cout << endl;void main()char ss26, incode1000;int i, key, asc = 65;for(i = 0; i < 26; i+)ssi = asc+;key = getKey();cout<<"请输入密文:"getchar('n');gets(incode);if(getError(incode) = 0)cout << "您的输入有误!请重新输入!n"exit(1);change(incode);getCode(ss, incode, key);五、程序运行结果:请输入密钥:6请输入明文:ilovecryptology译出的密文:ORUBKIXEVZURUMEPress any key to continue 六、实验小结:通过本次实验,将凯撒密码算法的理论应用到实践中来,利用C+编程实现了凯撒密码算法的加密过程,将理论与实践结合起来,加深了课本上凯撒密码算法理论的理解!专心-专注-专业