凯撒加密
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
陕
陕陕
陕西科技大学试验报告
西科技大学试验报告西科技大学试验报告
西科技大学试验报告
第 1 页 班级
班级班级
班级:
::
: 学号
学号学号
学号:
::
: 姓名
姓名姓名
姓名 试验组别
试验组别试验组别
试验组别:
::
:
试验日期
试验日期试验日期
试验日期:
::
: 2009年
年年
年3月
月月
月16 日
日日
日 报告日期
报告日期报告日期
报告日期:
::
: 2009年
年年
年3 月
月月
月16日
日日
日 成绩
成绩成绩
成绩:
::
:
报告内容
报告内容报告内容
报告内容:(
:(:(
:(目的和要求
目的和要求目的和要求
目的和要求、
、、
、原理
原理原理
原理、
、、
、步骤
步骤步骤
步骤、
、、
、数据
数据数据
数据、
、、
、计算
计算计算
计算、
、、
、小结等
小结等小结等
小结等)
))
) 实验一
实验一实验一
实验一 凯撒密码算法实验
凯撒密码算法实验凯撒密码算法实验
凯撒密码算法实验 1 实验目的
实验目的实验目的
实验目的 通过实验熟练掌握凯撒密码算法;
学会凯撒密码算法程序设计;
提高C++程序设计能力; 2
实验类别
实验类别实验类别
实验类别:
::
:验证实验■ 综合性实验□ 设计性实验□ 3
3 3
3 实验环境
实验环境实验环境
实验环境
软件环境 Windows Xp/Windows 2000
Visual c++/Turbo c++ 3.0
硬件系统 Pentium 4 3.0G 512MRAM 计算机等 4
4 4
4 算法原理
算法原理算法原理
算法原理
按照a~z依次对应0~25编码,变量K存放密钥-正整数。变量M存放一明文字
符ASCII码,变量C存放M中的数据经加密后得到的一密文字符的ASCII码。
加密算法:C≡(M+K)mod 26,如此继续下去,实现逐个字符进行加密。 5
5 5
5 实验步骤与内容
实验步骤与内容实验步骤与内容
实验步骤与内容
1) 编写程序
程序流程图:
1 0 2
退出
2) 编辑录入
请选择
加密 解密
输入密钥 输入明文
输出结果
输入密钥 输入密文
输出结果 陕
陕陕
陕西科技大学试验报告
西科技大学试验报告西科技大学试验报告
西科技大学试验报告
第 2 页 #include
#include
#include
void main()
{
char str1[100],str2[100];
int i,k,n;
printf("\t\t\t 欢迎使用凯撒加密系统");
printf("\n\n\t\t\t1.加密 2.解密 0.退出\n");
do{
printf("请选择:");
scanf("%d",&n);
switch(n)
{
case 1:
{
printf("\n输入密钥:");
scanf("%d",&k);
printf("\n输入明文字符串:");
scanf("%s",str1);
strupr(str1);
for(i=0;str1[i]!='\0';i++)
{
if(str1[i]>(90-k))str2[i]=str1[i]-26+k;
else str2[i]=str1[i]+k;
}
str2[i]='\0';
printf("\n加密后的密文为%s\n",str2);
break;
}
case 2:
{
printf("\n输入密钥:");
scanf("%d",&k);
printf("\n输入密文字符串:");
scanf("%s",str1);
strupr(str1);
for(i=0;str1[i]!='\0';i++)
{
if(str1[i]<65+k)str2[i]=str1[i]+26-k;
else str2[i]=str1[i]-k;
} 陕
陕陕
陕西科技大学试验报告
西科技大学试验报告西科技大学试验报告
西科技大学试验报告
第 3 页 str2[i]='\0';
printf("\n明文为%s\n",str2);
break;
}
case 0:
exit(0);
default:printf("\n请重新输入:\n");
}
}while(n);
}
3) 记录调试及进行情况
4) 程序结构说明文档 程序上分为两个部分,加密和解密。在加密模块中,首先输入密钥,然后会将密钥
的相应代码存储,然后输入明文,分别对明文的每个字母进行变换,最后输出结果。
解密过程如同加密,只是在进行变换时算式将加改成减即可。
5) 程序使用说明文档
使用此程序时,首先进行一次选择,加密、解密以及退出,选择一次以后,按
照提示输入密钥,明文或密文。在操作执行一次以后,程序会等待下次选择,
如果操作结束,就输入相应序号退出程序。
6
思考密钥
思考密钥思考密钥
思考密钥K的有效的最小取值范围
的有效的最小取值范围的有效的最小取值范围
的有效的最小取值范围
0
实验总结与体会实验总结与体会
实验总结与体会 陕
陕陕
陕西科技大学试验报告
西科技大学试验报告西科技大学试验报告
西科技大学试验报告
第 4 页 在这次实验中,我通过对凯撒加密以及解密的理解,知道了凯撒加密的本质:将字
母向后移K位,K即是密钥。根据本质编写代码,在编写代码的时候遇到了一些问题,
通过查阅课本,问题一一解决,程序运行的较为顺利。
通过本次实验,我认识到了自己的不足,以后会多加练习,将理论与实践结合起来,
在实验过程中,通过老师的指导,学会了另外一种编写思路,扩充了思维空间!
程序有不足之处,望老师指导!