密码置换加密算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、实验内容
通过设计算法进行对输入的明文通过秘钥进行加密,并打印出密码置换表。(说明一下这个算法的设计,详细课本42页)
四、实验步骤与实验代码
#include<>
#include<>
#define Sum 27
#define Max 100
int main(){
int i,j,k,m,n,z,p,keynum=0;
实验1密码置换算法实验报告
课程名称
物联网安全导论
指导教师
倪问尹
实验日期
2018年4月20日
班级
15物联1班
姓名
罗樟
学号
B206
实验成绩
这一栏由教师填写
一、实验项目名称
置换密码加密算法
二、实验环境
硬件平台:个人计算机:Intel Pentium 4 CPU ,512MB RAM;
软件:VisualStudio开发平台
return 0;
}Hale Waihona Puke 五、实验结果六、实验总结
通过本次实验,让我掌握了密码替换算法的原理,首先直接将秘钥插到字母表前面,再将后面的相字母去掉,最后进行置换算法进行置换。
七、教师评阅意见
gets(key);
printf("你输入的秘钥是:\n");
puts(key);
//将秘钥和字母表连在一起,得到新表
m = strlen(key);
n = strlen(zimubiao);
char miwenbiaoA[m+n];
for(j = 0;j < m;j ++){
miwenbiaoA[j] = key[j];
char zimubiao[Sum] = "abcdefghijklmnopqrstuvwxyz";
char A[Max];
char key[Max];
printf("请输入明文:\n");
gets(A);
printf("\n你输入的明文是:\n");
puts(A);
printf("请输入秘钥;\n");
if(miwenbiaoA[i] != '0'){
miwenbiao[j] = miwenbiaoA[i];
j++;
}
}
printf("得到的置换表为:\n");
printf("%s\n",zimubiao);
for(i = 0; i < mi_len ; i ++)
printf("%c",miwenbiao[i]);
printf("\n");
printf("\n得到的密文为:\n");
for(i=0;i<strlen(A);i++){
for(j=0;j<strlen(zimubiao);j++){
if(A[i]==zimubiao[j])
printf("%c",miwenbiao[j]);
}
}
getchar();
continue;
for(j = i+1;j<strlen(miwenbiaoA);j++){
if(miwenbiaoA[j]==miwenbiaoA[i])
miwenbiaoA[j]='0';
}
mi_len ++;
}
char miwenbiao[mi_len];
j=0;
for(i = 0;i < strlen(miwenbiaoA);i++){
}
for(z = 0; z< n;z ++){
miwenbiaoA[j+z] = zimubiao[z];
}
printf("\n");
//处理新表的相同字符
int mi_len = 0;
for(i = 0; i< strlen(miwenbiaoA);i++){
if(miwenbiaoA[i] == '0')
通过设计算法进行对输入的明文通过秘钥进行加密,并打印出密码置换表。(说明一下这个算法的设计,详细课本42页)
四、实验步骤与实验代码
#include<>
#include<>
#define Sum 27
#define Max 100
int main(){
int i,j,k,m,n,z,p,keynum=0;
实验1密码置换算法实验报告
课程名称
物联网安全导论
指导教师
倪问尹
实验日期
2018年4月20日
班级
15物联1班
姓名
罗樟
学号
B206
实验成绩
这一栏由教师填写
一、实验项目名称
置换密码加密算法
二、实验环境
硬件平台:个人计算机:Intel Pentium 4 CPU ,512MB RAM;
软件:VisualStudio开发平台
return 0;
}Hale Waihona Puke 五、实验结果六、实验总结
通过本次实验,让我掌握了密码替换算法的原理,首先直接将秘钥插到字母表前面,再将后面的相字母去掉,最后进行置换算法进行置换。
七、教师评阅意见
gets(key);
printf("你输入的秘钥是:\n");
puts(key);
//将秘钥和字母表连在一起,得到新表
m = strlen(key);
n = strlen(zimubiao);
char miwenbiaoA[m+n];
for(j = 0;j < m;j ++){
miwenbiaoA[j] = key[j];
char zimubiao[Sum] = "abcdefghijklmnopqrstuvwxyz";
char A[Max];
char key[Max];
printf("请输入明文:\n");
gets(A);
printf("\n你输入的明文是:\n");
puts(A);
printf("请输入秘钥;\n");
if(miwenbiaoA[i] != '0'){
miwenbiao[j] = miwenbiaoA[i];
j++;
}
}
printf("得到的置换表为:\n");
printf("%s\n",zimubiao);
for(i = 0; i < mi_len ; i ++)
printf("%c",miwenbiao[i]);
printf("\n");
printf("\n得到的密文为:\n");
for(i=0;i<strlen(A);i++){
for(j=0;j<strlen(zimubiao);j++){
if(A[i]==zimubiao[j])
printf("%c",miwenbiao[j]);
}
}
getchar();
continue;
for(j = i+1;j<strlen(miwenbiaoA);j++){
if(miwenbiaoA[j]==miwenbiaoA[i])
miwenbiaoA[j]='0';
}
mi_len ++;
}
char miwenbiao[mi_len];
j=0;
for(i = 0;i < strlen(miwenbiaoA);i++){
}
for(z = 0; z< n;z ++){
miwenbiaoA[j+z] = zimubiao[z];
}
printf("\n");
//处理新表的相同字符
int mi_len = 0;
for(i = 0; i< strlen(miwenbiaoA);i++){
if(miwenbiaoA[i] == '0')