91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 298KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-08
  • 語言: C/C++
  • 標簽: 10級??參考??

資源簡介

C語言編寫,密碼學實驗,10級做的,可參考。

資源截圖

代碼片段和文件信息

//文件名:實驗4
//作者:杜磊
//電子郵件地址:handsome9501@qq.com
//說明:實現RSA對任意文件的加解密?
//最后一次修改:2012年12月10日

#include
#include
#include?
#include?
#include????
#include???

#define?NUM?100
#define?LEN?sizeof(struct?rsalink)
void??print(int?a[NUM]);//自定義數運算庫,打印
int?cmpl(int?a[NUM]int?b[NUM]);//比較判斷?
void?move(int?a[NUM]int?*b);//移位操作
void?mul(int?a[NUM]int?b[NUM]int?*c);//乘法操作
void?add(int?a[NUM]int?b[NUM]int?*c);//加法操作?
void?sub(int?a[NUM]int?b[NUM]int?*c);//減法操作
void??mod(int?a[NUM]int?b[NUM]int??*c);//取余操作?
void??divnum(int?t[NUM]int?b[NUM]int??*c?int?*w);//試商法求解?
void?mulmod(int?a[NUM]?int?b[NUM]?int?n[NUM]int?*m);//?m=a*b?mod?n
void?expandmod(int?a[NUM]?int?p[NUM]?int?n[NUM]int?*m);//m=a^p??mod?n的函數
int?prime_co(int?e[NUM]int?s[NUM]);?//?求兩個大數之間是否互質
void?prime_random(int?*pint?*q);//產生隨機數?
long??rsa(long?plong?qlong?e);//求解密密鑰d的函數(根據Euclid算法)
void?loadpubkey(char?*keyint?e[NUM]int?n[NUM]);??//導入公鑰
void?loadprikey(char?*keyint?d[NUM]int?n[NUM]);?//導入私鑰
void?savepubkey(int?e[NUM]int?n[NUM]);//導出公鑰
void?saveprikey(int?d[NUM]int?n[NUM]);//導出私鑰
void??rsa_encrypt(char*?in_file?char*?out_fileint?e[NUM]?int?n[NUM]);//加密函數?
void??rsa_decrypt(char*?in_file?char*?out_fileint?d[NUM]?int?n[NUM]);//解密函數?
void?sub(int?a[NUM]int?b[NUM]int?c[NUM]);

struct?rsalink
{?
int??numcount[NUM];//用來標記正負號,1正,0負
????struct?rsalink?*next;
};

void??print(int?a[NUM])//自定義數運算庫,打印?
???{
???int?i;
???for(i=0;i ???printf(“%d“a[a[99]-i-1]);
???}

int?cmpl(int?a[NUM]int?b[NUM])//比較判斷?
{???int?l1?l2;
int?i;
l1=a[99];
l2=b[99];
if?(l1>l2)
?????return?1;
????if?(l1???????return?-1;
????for(i=(l1-1);i>=0;i--)
???{
???if?(a[i]>b[i])
???return?1?;
???if?(a[i] ???return?-1;
???}
????return?0;
}

void?move(int?a[NUM]int?*b)//移位操作?
{
int?j;
for(j=0;j b[j]=a[j];
}

void?mul(int?a[NUM]int?b[NUM]int?*c)//乘法操作?
{
?int?ij;
?int?y;
?int?x;
?int?z;
?int?w;
?int?l1?l2;
l1=a[NUM-1];
l2=b[NUM-1];
if?(a[NUM-2]==‘-‘&&?b[NUM-2]==‘-‘)
c[NUM-2]=0;
else?if?(a[NUM-2]==‘-‘)
c[NUM-2]=‘-‘;
else?if?(b[NUM-2]==‘-‘)
c[NUM-2]=‘-‘;
?for(i=0;i?{
??for(j=0;j??{
?????x=a[i]*b[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[NUM-1]=w;
}?

void?add(int?a[NUM]int?b[NUM]int?*c)//加法操作?
{
?int?il1l2;
?int?lentemp[NUM];
?int?k=0;
l1=a[NUM-1];
l2=b[NUM-1];
if((a[NUM-2]==‘-‘)&&(b[NUM-2]==‘-‘))
{
c[NUM-2]=‘-‘;
}
else?if?(a[NUM-2]==‘-‘)
{
move(atemp);
temp[NUM-2]=0;
sub(btempc);
}
else?if?(b[NUM-2]==‘-‘)
{
move(btemp);
temp[98]=0;
sub(atempc);
}
if(l1?else?len=l2;
?for(i=0;i?{
??c[i]=(a[i]+b[i]+k)%10;
??k=(a[i]+b[i]+k)/10;
?}
?if(l1>len)
?{
??for(i=len;i??{
???c[i]=(a[i]+k)%10

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????387072??2012-12-21?22:05??20101120068?杜磊?lab4\實驗四報告.doc

?????文件??????18025??2012-12-21?20:57??20101120068?杜磊?lab4\杜磊?4.cpp

?????文件??????54258??2012-12-25?12:06??20101120068?杜磊?lab4\杜磊?4.exe

?????目錄??????????0??2012-12-25?12:39??20101120068?杜磊?lab4

-----------?---------??----------?-----??----

???????????????459355????????????????????4


評論

共有 條評論