📄 rsa.txt
字号:
#include<iostream>
#include<string>
#include<vector>
using namepace std;
bool check_P_rsa(long&single)
{
long i;
bool IsSingle=ture;
if(single!=1)
{
for(i=2;i<=sqrt(single)&&single%i!=0;i++)
IsSingle+ture;
if(i<=sqrt(single))
IsSingle=false;
}
else
IsSingle=false;
}
long lpow_rsa(long x,long y,long p)
{
long i,z=1;
for(i=0;i<y;i++)
z=(z*x)%p;
return z;
}
long modni_rsa(long yy,long p)
{
long r,r1=1;
long r0=p;
long s0,t0,t1,s1,q,temp;
r1=yy;
t0=0;
t1=1;
s0=1;
s1=0;
q=r0/r1;
r=r0-q*r1;
while(r>0)
{
temp=t0-q*t1;
t0=t1;
t1=temp;
temp=s0-q*s1;
s0=s1;
s1=temp;
r0=r1;
r1=r;
q=r0/r1;
r=r0-q*r1;
}
while(t1<0)
{
t1=t1=p;
}
return t1;
}
long S_tran_L_rsa(string s)
{
int i;
long y=0;
for(i=0;i<s.size();i++)
y+=pow(10,s.size()-i-1)*((int)(s[i])-48);
return y;
}
string L_tran_S_rsa(long x)
{
int i=0,j;
long y=x;
string v,v1;
while(x!=0)
{
x/=10;
i++;
}
v1.resize(i);
v.resize(i);
i=0;
while(y!=0)
{
v[i]=y%10+48;
y/=10;
i++;
}
for(j=0;j<v.size();j++)
v1[j]=v[i-1-j];
return v1;
}
CString tran_cstr_rsa(sting str)
{
char cv[10000];
char *ty;
for(int i=0;i<str.size();i++)
cv[i]=str[i];
cv[i]='\0';
ty=cv;
return (CString)ty;
}
int gcd_rsa(int a,int b)
{
int r0=a;
int r1=b;
int q,temp;
while(r1!=0)
{
q=r0/r1;
temp=r0;
r0=r1;
r1=temp-q*r1;
}
return r0;
}
string RSA_EN(long n,long b,string Text)
{
int i,m;
string s1,s2;
long x,n=p*q;
Text+=' ';
for(i=0;i<Text.size();i++)
{
m=(int)Text[i];
y=lpow_rsa(m,b,n);
s+=L_tran_S_rsa(y);
s+=' ';
}
return s;
}
string RSA_DE(long p,long q,long a,string Text)
{
int i,cnt=0;
string s1,s2;
long x, n=P*q;
Text+=' ';
for(i=0;i<=Text.size();i++)
if(Text[i]!=' ')
s1+=Text[i];
{
x=S_tran_L_rsa(s1);
x=lpow_rsa(x,a,n);
s2+=(char)x;
s1="";
}
return s2;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -