资源简介
这是一个完整的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语言实现
相关资源
- VC++实现RSA加密算法
- C++实现RSA加密解密算法
- 生成RSA密钥对
- RSA算法纯C语言代码实现,带测试dem
- OpenSSL RSA 非对称加密(VS2013,C++实现
- MFC实现RSA算法
- 数字签名算法,c++实现,RSA的算法
- 基于OpenSSL的RSA加解密的C语言实现
- RSA加密算法用MFC实现
- 猫脸变换算法(Arnold)的简单实现C
- DES算法C++实现
- rsa数字签名
- C++使用Openssl进行RSA加密解密及签名验
- RSA算法加密MFC实现
- AES加密解密程序(C++)+实验报告
- RSA加密算法
- Hash散列函数与RSA实现数字签名
- MFC vc6.0 RSA DES MD5 加密解密算法
- 作业4 RSA和大数因式分解
- RSA论文
- RSA加密算法C语言实现
- 最简单rsa加解密文件
- RSA加密字符串 C++ Builder 6.0
- 密码学RSA 算法源码及大数运算的实现
- RSA(C++)代码实现全
- RSA加解密源码VC++实现
- RSA算法C语言程序
- C++ 超大整数类 及RSA加密
- openssl c语言应用
- RSA加密算法c语言
评论
共有 条评论