资源简介
这是一个完整的rsa算法 包括多种功能,包括对文件的加密解密以及简单的数据测试
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#define MAX 100
#define LEN sizeof(struct slink)
void sub(int a[MAX]int b[MAX] int c[MAX] );
struct slink
{
int bignum[MAX];
/*bignum[98]用来标记正负号,1正,0负bignum[99]来标记实际长度*/
struct slink *next;
};
/*/--------------------------------------自己建立的大数运算库-------------------------------------*/
void print( int a[MAX] )
{
int i;
for(i=0;i printf(“%d“a[a[99]-i-1]);
printf(“\n\n“);
return;
}
int cmp(int a1[MAX]int a2[MAX])
{ int l1 l2;
int i;
l1=a1[99];
l2=a2[99];
if (l1>l2)
return 1;
if (l1 return -1;
for(i=(l1-1);i>=0;i--)
{
if (a1[i]>a2[i])
return 1 ;
if (a1[i] return -1;
}
return 0;
}
void mov(int a[MAX]int *b)
{
int j;
for(j=0;j b[j]=a[j];
return ;
}
void mul(int a1[MAX]int a2[MAX]int *c)
{
int ij;
int y;
int x;
int z;
int w;
int l1 l2;
l1=a1[MAX-1];
l2=a2[MAX-1];
if (a1[MAX-2]==‘-‘&& a2[MAX-2]==‘-‘)
c[MAX-2]=0;
else if (a1[MAX-2]==‘-‘)
c[MAX-2]=‘-‘;
else if (a2[MAX-2]==‘-‘)
c[MAX-2]=‘-‘;
for(i=0;i {
for(j=0;j {
x=a1[i]*a2[j];
y=x/10;
z=x%10;
w=i+j;
c[w]=c[w]+z;
c[w+1]=c[w+1]+y+c[w]/10;
c[w]=c[w]%10;
}
}
w=l1+l2;
if(c[w-1]==0)w=w-1;
c[MAX-1]=w;
return;
}
void add(int a1[MAX]int a2[MAX]int *c)
{
int il1l2;
int lentemp[MAX];
int k=0;
l1=a1[MAX-1];
l2=a2[MAX-1];
if((a1[MAX-2]==‘-‘)&&(a2[MAX-2]==‘-‘))
{
c[MAX-2]=‘-‘;
}
else if (a1[MAX-2]==‘-‘)
{
mov(a1temp);
temp[MAX-2]=0;
sub(a2tempc);
return;
}
else if (a2[MAX-2]==‘-‘)
{
mov(a2temp);
temp[98]=0;
sub(a1tempc);
return;
}
if(l1 else len=l2;
for(i=0;i {
c[i]=(a1[i]+a2[i]+k)%10;
k=(a1[i]+a2[i]+k)/10;
}
if(l1>len)
{
for(i=len;i {
c[i]=(a1[i]+k)%10;
k=(a1[i]+k)/10;
}
if(k!=0)
{
c[l1]=k;
len=l1+1;
}
else len=l1;
}
else
{
for(i=len;i {
c[i]=(a2[i]+k)%10;
k=(a2[i]+k)/10;
}
if(k!=0)
{
c[l2]=k;
len=l2+1;
}
else len=l2;
}
c[99]=len;
return;
}
void sub(int a1[MAX]int a2[MAX]int *c)
{
int il1l2;
int lent1[MAX]t2[MAX];
int k=0;
l1=a1[MAX-1];
l2=a2[MAX-1];
if ((a1[MAX-2]==‘-‘) && (a2[MAX-2]==‘-‘))
{
mov(a1t1);
mov(a2t2);
t1[MAX-2]=0;
t2[MAX-2]=0;
sub(t2t1c);
return;
}
else if( a2[MAX-2]==‘-‘)
{
mov(a2t2);
t2[MAX-2]=0;
add(a1t2c);
return;
}
else if (a1[MAX-2]==‘-‘)
{
mov(a2t2);
t2[MAX-2]=‘-‘;
add(a1t2c);
return;
}
if(cmp(a1a2)==1)
{
len=l2;
for(i=0;i {
if ((a1[i]-k-a2[i])<0)
{
c[i]=(a1[i]-a2[i]-k+10)%10;
k=1;
}
else
{
c[i]=(a1[i]-a2[i]-k)%10;
k
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 22646 2010-11-20 17:58 RSA算法完整版.cpp
----------- --------- ---------- ----- ----
22646 1
- 上一篇:tftp服务器源码,纯c语言
- 下一篇:一个完整的des算法的c语言实现
相关资源
- RSA加密解密 MFC C++
- c/c++实现的基于文件的RSA加解密
- RSA算法1024位C语言实现
- 用vc++6.0做 的RSA的加密与解密程序
- C++ 聊天软件源代码(内容加密RSA加密
- RSA加解密源码VC++
- VC++ 使用RSA算法防止非法注册机破解软
- 秘钥管理系统 c语言实现的RSA
- 常用加密算法AES、RSA、DES、MD5、TEA、
- RSA加解密算法 C语言实现
- 基于c++的RSA加密解密程序及源码
- rsa加密解密算法C语言代码
- rsa签名 C语言实现
- zw_RSA算法C语言实现.zip
- C语言 3DES、AES、RC6、TEA、RSA、MD5、S
- RSA数字签名系统c源码
- RSA加解密c语言实现.zip
- ECC加密 RSA加密 C++ 简单实现 不带大数
- C语言实现的文字加密与解密小程序(
- C++ Qt5实现RSA加解密
- 信息安全原理大数四则运算及DH算法
- 软件学院密码学实验四RSA
- rsa MFC实现源码
- AES算法源码~~~~~~~~~~~~
- linux下C语言从N模数、E公钥指数、D私
- MFC有界面RSA加密解密算法实现
- RSA加密算法的C语言实现
- RSA算法C语言实现.zip
- 字符串的RSA加密与解密 c语言实现
- RSA数字签名程序(C++实现)
评论
共有 条评论