⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 - vc环境下RSA算法加解密功能的实现
💻 CPP
字号:
#include <stdio.h> 
#include <conio.h> 
#include <string.h> 
#include <malloc.h> 
int gcd(int a, int b) /*辗转相除法求a,b的最大公因数*/ 
{ 
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; 
clrscr(); 

cout<<"Please input primal sentence: "; 
gets(c); 
length = strlen(c); 
cout<<"Input the key(2 numbers): "<<endl; 
cin >>ka>>kb;
getchar(); 
if(gcd(ka,26)!=1) 
{ 
cout<<"The value of the key is error"<<endl; 
return; 
} 

for(i=0; i<length; 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; 
} 
cout<<"Result is:"<< c <<endl; 
for(i=0; i<length; i++) 
{ 
if(c[i]>64&&c[i]<91) 
{ 
tmp = Ni(ka,26)*((c[i]-65)-kb); 
if(tmp<0) 
c[i] = tmp%26+26+97; 
else 
c[i] = tmp%26+97; 
} 
} 
cout<<"After translated the sentence,we can see the primal sentence as follow:"<< c; 

getch(); 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -