資源簡介
用C語言設計的仿射密碼,在VC6.0上可以運行,效果不錯

代碼片段和文件信息
#include??
#include???
#include??
int?gcd(int?a?int?b)?/*輾轉相除法求ab的最大公因數*/?
{?
int?k?=?0;?
do?
{?
k?=?a%b;?
a?=?b;?
b?=?k;?
}while(k!=0);?
return?a;?
}?
int?Ni(int?a?int?b)?/*求a相對于b的逆*/?
{?
int?i?=?0;?
while(a*(++i)%b!=1);?
return?i;?
}?
void?Affine()?/*仿射密碼*/?
{?
char?c[100];?
int?length?i=0?ka=0?kb=0?tmp;?
?
printf(“仿射密碼:\n輸入一個加密語句:?“);?
gets(c);??
length?=?strlen(c);?
printf(“輸入兩個數字:?“);?
scanf(“%d%d“?&ka?&kb);?
getchar();/*getchar()的作用:通常你在輸入數字之后會按一個空格或者是回車
getchar()就是把這個字符讀入進去防止這個字符?
影響后續(xù)程序的操作.?*/?
if(gcd(ka26)!=1)?
{?
printf(“密碼輸入錯誤!\nPress?any?key?to?return...“);?
return;?
}?
/*************仿射加密***********/
for(i=0;?i {?
if(c[i]>96&&c[i]<123)???????????/*如果是小寫字母*/??
c[i]?=?(ka*(c[i]-97)+kb)%26+65;
else?if(c[i]>64&&c[i]<91)???????/*如果是大寫字母*/
c[i]?=?(ka*(c[i]-65)+kb)%26+65;?
}?
printf(“加密結果是:?%s\n“?c);???????
/***********仿射解密***********/
for(i=0;?i {?
if(c[i]>64&&c[i]<91)?
{?
tmp?=?Ni(ka26)*((c[i]-65)-kb);?
if(tmp<0)?
c[i]?=?tmp%26+26+97;?
else?
c[i]?=?tmp%26+97;?
}?
}?????????????????????????????
getch();?
}?
?
void?main()?
{?
Affine();
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????33792??2011-04-08?15:29??仿射密碼\Debug\vc60.idb
?????文件??????45056??2011-04-08?15:28??仿射密碼\Debug\vc60.pdb
?????文件?????167992??2011-04-08?15:29??仿射密碼\Debug\仿射密碼.exe
?????文件?????184352??2011-04-08?15:29??仿射密碼\Debug\仿射密碼.ilk
?????文件???????5774??2011-04-08?15:28??仿射密碼\Debug\仿射密碼.obj
?????文件?????219752??2011-04-08?15:28??仿射密碼\Debug\仿射密碼.pch
?????文件?????353280??2011-04-08?15:29??仿射密碼\Debug\仿射密碼.pdb
?????目錄??????????0??2011-04-08?15:29??仿射密碼\Debug
?????文件???????1412??2011-04-08?15:28??仿射密碼\仿射密碼.cpp
?????文件???????3767??2011-04-08?15:28??仿射密碼\仿射密碼.dsp
?????文件????????541??2011-04-08?15:29??仿射密碼\仿射密碼.dsw
?????文件??????33792??2011-04-08?15:29??仿射密碼\仿射密碼.ncb
?????文件??????48640??2011-04-08?15:29??仿射密碼\仿射密碼.opt
?????文件????????756??2011-04-08?15:29??仿射密碼\仿射密碼.plg
?????目錄??????????0??2011-04-08?15:30??仿射密碼
-----------?---------??----------?-----??----
??????????????1098906????????????????????15
評論
共有 條評論