资源简介
自己编写的一个转轮密码机程序,很基础,便于理解转轮密码机的工作原理
代码片段和文件信息
#include
#include
void Move(int q[][26]) //转轮旋转函数
{
int ijtemp;
temp=q[0][25];
for(i=24;i>=0;i--)
{
q[0][i+1]=q[0][i];
}
q[0][0]=temp;
temp=q[1][25];
for(i=24;i>=0;i--)
{
q[1][i+1]=q[1][i];
}
q[1][0]=temp;
}
int Find(int pint s[][26]int m[][26]int q[][26]) //明文与密文对照函数 已知明文找到对应的密文
{
int ij=0k=0;
for(i=0;i<26;i++)
{
if(s[1][i]==p)
{
for(j=0;j<26;j++)
{
if(m[1][j]==m[0][i])
{
for(k=0;k<26;k++)
{
if(q[1][k]==q[0][j])
{
return k;
}
}
}
}
}
}
}
int main()
{
//三个转轮
int slow[2][26]={{2425261234567891011121314151617181920212223}
{2131511910142620816722411517912231822562413}};
int mid[2][26]={{2612345678910111213141516171819202122232425}
{2016415314122351622219111825241371082192617}};
int quick[2][26]={{1234567891011121314151617181920212223242526}
{8182617202210313114235249122516196152127114}};
char a1[30]b1[30]; //a1、b1分别存放输入输出字符
int a2[30]b2[30]; //b1、b2分别存放输入输出时转换成的数字
int ni=0j=0;
int ts=0tm=0tq=0; //计算次数
printf(“请输入大写英文字母: \n“);
gets(a1);
n=strlen(a1);
for(i=0;i {
a2[i]=a1[i]-‘A‘;
a2[i]=slow[0][a2[i]];
b2[j]=Find(a2[i]slowmidquick);
b1[j]=b2[j]+‘A‘;
j++;
tm++; //转轮计数
Move(quick);
if(tm==26)
{
ts++;
Move(mid); tm=0;
if(ts==26)
{
Move(slow); ts=0;
}
}
}
b1[j]=‘\0‘;
printf(“得到的密文为:\n“);
puts(b1);
printf(“\n“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2202 2013-03-13 21:12 zhuanlunmima.c
- 上一篇:dht11的12864显示程序
- 下一篇:超简洁的js日期选择控件
相关资源
- 密码学论文,密码学实验,特经典!
- 数字签名算法DSS
- 密码学与网络安全 第五版答案.pdf
- 密码学的新方向PPT混沌密码,量子密
- IKNP03.ppt
- 珍贵资料哈尔滨工业大学密码学原理
- 密码学与网络安全 课后答案
- 哈工大密码学作业题目
- New Directions of Cryptograph《密码学新方向
- 密码学与网络安全第三版习题答案
- 现代密码学实验报告包含DES算法
- 密码学_浅谈密码学_密码学教学_密码
- [12]密码学.txt
- 现代密码学教程课后习题答案北邮
- 猫、爱因斯坦和密码学.epub
- Column permutation cipher密码学经典密码之
- 应用密码学答案
- 密码学介绍 An Introduction to Cryptograph
- 密码学试题带答案
- 武汉大学密码学引论第三章课后部分
- Digital Signatures(数字签名)-Jonathan
- 密码学+代码+报告.rar
- 密码学实验报告——RSA、流程图、运
- 现代密码学教程部分课后答案
- 现代密码学-清华大学-杨波+习题答案
- 密码学课程设计3
- 中科大密码学导论往年试卷.rar
- 应用编码与计算机密码学 PDF
- 量子密码学及课件量子密码学及课件
- 华科密码学课设报告
评论
共有 条评论