资源简介
自己编写的一个转轮密码机程序,很基础,便于理解转轮密码机的工作原理

代码片段和文件信息
#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日期选择控件
相关资源
- 密码学课程设计:DES加密解密算法的
- 应用密码学 中文.rar
- 密码学概论中文版
- 华科密码学课设
- 密码学实验RSA加解密
- 密码学基础 卷二 中文 Oded Goldreich
- 密码学基础 卷一 中文 Oded Goldreich
- 密码编码学与网络安全 原理与实践原
- 现代密码学-课后答案-第二版
- Introduction to Modern Cryptography 2nd
- 密码学概论(中文版)电子书
- 随机大质数和大随机数的产生
- 东北大学软件学院信息安全程序实践
- 现代密码学 胡予濮
- Jonathan Katz 密码学ppt
- 现代密码学杨波编著清华大学出版社
- 应用密码学手册(中文版) part2
- 密码学课件[武汉大学]
- 现代密码学ppt杨波
- 密码学概论——信息安全的经典教材
- 中科大密码学
- 应用密码学.pdf
- 密码学导引冯登国、裴定一编著.pdf
- 2012西华大学应用密码学考试题
- 密码学张焕国.pdf
- MMX-应用密码学手册英文版 Handbook of
- MMX-应用密码学英文版 Applied Cryptogra
- 现代密码学:原理与协议 英文版
- 密码学教学PPT
- 密码学库 miracle库
评论
共有 条评论