資源簡介
基于C語言,實現仿射密碼算法,隨機生成密鑰a、b,加密和解密程序對任意滿足條件的a、b都能夠進行處理。
代碼片段和文件信息
#include
#include
#include
#include
#define?MAX?10000
//求最大公因數?
int?gcd(int?aint?b)?
{
int?i;
for(i=a;i>0;i--)
{
if(a%i==0&&b%i==0)
{
break;
????}
}?
return?i;
}
//求x的逆?
int?NI(int?a)
{
????int?x?=?0;
????while(a*(++x)%26!=1);??//a*x=1?mod?26
????return?x;????????
}
//加密操作
void?enc(char?m[MAX]int?aint?b)?
{
char?c[MAX];
int?lengthj=0;
FILE?*fp3;
????length?=?strlen(m);
??? printf(“Encrypted?:\n“);
????for(j=0;j ????{
???? if(m[j]>64&&m[j]<91)????????????//區分明文的大小寫?????????
c[j]=(a*(m[j]-65)+b)%26?+65;????????//對大寫字母進行加密?算法c[i]=a*m[i]+b?mod?26???
else??
c[j]=(a*(m[j]-97)+b)%26?+97;???????//對小寫字母進行加密???
printf(“%c“c[j]);???????????????//輸出密文?
}
????fp3=fopen(
評論
共有 條評論