亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rsa算法的c++實(shí)現(xiàn).txt

?? 本程序提供密鑰產(chǎn)生的一些基本數(shù)學(xué)實(shí)現(xiàn) 用c++實(shí)現(xiàn)
?? TXT
字號:
RSA算法的C++實(shí)現(xiàn)

key_produce.h //==本程序提供密鑰產(chǎn)生的一些基本數(shù)學(xué)實(shí)現(xiàn)
#include 
class CKEY_PRODUCE 
{
public:
CKEY_PRODUCE();
virtual ~CKEY_PRODUCE();
public:
int JudgePrime(unsigned int prime);//==========判prime是否為素數(shù)
//============================================算出p*q的歐拉值
int Count_N_AoLa_Num(unsigned int p, unsigned int q, unsigned int * ao_la);
//============================================求兩個數(shù)的最大公因數(shù)
unsigned int CountCommonData(unsigned int a, unsigned int b);
//=============================================隨機(jī)選擇公鑰e
int RandSelect_e( unsigned int ao_la, unsigned int* e );
//=============================================求b的e次方除d的余數(shù)
unsigned int GetOutNum(unsigned int b,unsigned int e , unsigned int d);
//=============================================求任意大于2的整數(shù)的歐拉值
unsigned int CountAnyNumAola(unsigned int number);
//=============================================產(chǎn)生RSA 公_私 密鑰
int Produce_RSA_Key(unsigned int p,unsigned int q, unsigned int* Ke, unsigned int* Kd, unsigned int* model);
//===========================利用加的模等于模的加求e*d = 1 mod model 中的d
int OverOneNum(unsigned int e,unsigned int model, unsigned int* d);
};
key_produce.cpp//==本程序提供密鑰產(chǎn)生的一些基本數(shù)學(xué)實(shí)現(xiàn)

CKEY_PRODUCE::CKEY_PRODUCE()
{}
CKEY_PRODUCE::~CKEY_PRODUCE()
{}
int CKEY_PRODUCE::Produce_RSA_Key(unsigned int p,unsigned int q, unsigned int* Ke, unsigned int* Kd, unsigned int* model)
{
unsigned int ao_la;
if( Count_N_AoLa_Num(p, q, &ao_la) )
{
   if( RandSelect_e(ao_la, Ke) )
   {
//*Kd= GetOutNum (*Ke, CountAnyNumAola(ao_la)-1 ,ao_la) ;
//注:求Kd還是不用 x= a^(n'的歐拉數(shù) - 1) mod n' (其中n'= (p-1)*(q-1) ),因n'的//歐拉數(shù)也不好求
    if( OverOneNum(*Ke, ao_la, Kd) )
    {
     *model= p*q;
     return 1;
    }
   }
}
return 0;
}
int CKEY_PRODUCE::JudgePrime(unsigned int prime)
{
unsigned int i;
unsigned int limit= (unsigned int)sqrt( (double)prime );
for(i=2; i <= limit; i++)
{
   if(prime%i==0)
   {
    return 0;
   }
}
return 1;
}
int CKEY_PRODUCE::Count_N_AoLa_Num(unsigned int p, unsigned int q, unsigned int * ao_la)
{
if( !JudgePrime(p) )
   return 0;
if( !JudgePrime(q) )
   return 0;
*ao_la = (p-1)*(q-1);
return 1;
}
unsigned int CKEY_PRODUCE::CountCommonData(unsigned int a, unsigned int b)
{
unsigned int c ;
if( c= a%b )
   return CountCommonData(b,c);
else
   return b;
}
int CKEY_PRODUCE::RandSelect_e( unsigned int ao_la, unsigned int* e )
{
unsigned int tmp;
unsigned int div;
if( ao_la <= 2 )
{
   return 0;
}
srand( time(0) );
div= ao_la - 2;
do
{
   tmp = ( (unsigned int)rand()+90 ) % div + 2;
}while( CountCommonData(tmp, ao_la)!=1 );
*e = tmp;
return 1;
}
//==================================求b的e次方除d的余數(shù)
unsigned int CKEY_PRODUCE::GetOutNum(unsigned int b,unsigned int e , unsigned int d)
{
unsigned int i;
unsigned int outNum= 1;
for( i=0; i<e; i++)//=========用了乘的模 等于 模的乘
{
   outNum *= b;//==============b d如果長過16位,很有可能溢出
   if( outNum >= d )
    outNum %= d;
   if(!outNum)
    return outNum;
}
return outNum%d;
}
//==============================利用加的模等于模的加求e*d = 1 mod model 中的d
int CKEY_PRODUCE::OverOneNum(unsigned int e,unsigned int model, unsigned int* d)
{
unsigned int i;
unsigned int over= e;
for(i=1; i<model; )
{
   over= over % model;
   if( over==1 )
   {
    *d = i;
    return 1;
   }
   else
   {
    if(over+e<= model)
    {
     do
     {
      i++;
      over += e;
     }
     while( over+e <= model );
    }
    else

    {
     i++;
     over +=e;
    }
   }
}
return 0;
}
//==================================求任意大于1的整數(shù)的歐拉值
unsigned int CKEY_PRODUCE::CountAnyNumAola(unsigned int number)
{
unsigned int ao_la= 1;
unsigned int i; if( number<=1 )
   printf("本函數(shù)不處理2以下的范圍!\n");
for(i=2; i<number ; i++)
{
   if( CountCommonData(number, i)==1 )
    ao_la ++;
}
return ao_la;
}



encryption.h//==本程序提供對文件進(jìn)行加密解密的操作
class CENCRYPTION
{
public:
CENCRYPTION();
virtual ~CENCRYPTION();
void Encrypt(UINT PublicKey, UINT mod, FILE* fipRe, FILE* fipWr,char* extrName );
void Explain(UINT PrivateKey, UINT mod, FILE* fipRe, FILE* fipWr );
void TxtEncrypt(unsigned* cipSourceTxt, int buffSize, unsigned int Ke, unsigned int model);
private:
//==================================求b的e次方除d的余數(shù)
unsigned int GetOutNum(unsigned int b,unsigned int e , unsigned int d);
//==================================對原文進(jìn)行加密并覆蓋原緩沖區(qū)
};
encryption.cpp//==本程序提供對文件進(jìn)行加密解密的操作

CENCRYPTION::CENCRYPTION()
{ }
CENCRYPTION::~CENCRYPTION()
{ }
//==================================對原文進(jìn)行加密并覆蓋原緩沖區(qū)
void CENCRYPTION::TxtEncrypt(unsigned* cipSourceTxt, int buffSize, unsigned int Ke, unsigned int model)
{
int i;
for( i=0; i < buffSize; i++ )
{
   cipSourceTxt[i] = GetOutNum( cipSourceTxt[i], Ke, model );
}
}
//==================================求b的e次方除d的余數(shù)
unsigned int CENCRYPTION::GetOutNum(unsigned int b,unsigned int e , unsigned int d)
{
unsigned int i;
unsigned int outNum= 1;
for( i=0; i < e; i++)//=========用了乘的模 等于 模的乘
{
   outNum *= b;
   if( outNum >= d )
   {
    outNum %= d;
   }
   if(!outNum)
    return outNum;
}
return outNum%d;
}
void CENCRYPTION::Encrypt(UINT PublicKey, UINT mod, FILE* fipRe, FILE* fipWr ,char* extrName)
{
unsigned int ReSize;
unsigned int uBuf[BUFFER_SIZE]= {0,};
char cBuf[BUFFER_SIZE];
unsigned int i;
for(i=0; i<3; i++)//=====我認(rèn)為擴(kuò)展名是3個字符
{
   if(extrName)//=========如果有擴(kuò)展名, 將擴(kuò)展名放入uBuf 和數(shù)據(jù)一樣加密
   {
    uBuf[i]= 0;
    *((char*)(&uBuf[i])) = extrName[i];
   }
   else
    uBuf[i]= 0;
}
if(extrName)//===============如果有擴(kuò)展名, 將擴(kuò)展名加密
   TxtEncrypt(uBuf, 3,PublicKey,mod);
fwrite( (char*)uBuf,1, 3*sizeof(unsigned int), fipWr);//密文前12個,字節(jié)中是源文件的 擴(kuò)展名信息
do
{
   ReSize= fread(cBuf, 1, BUFFER_SIZE,fipRe);
   if(ReSize)
   {
    unsigned int record=1;
    unsigned int WrNum;
    for(i=0; i < ReSize; i++)
    {
     uBuf[i]= 0;
     *((char*)(&uBuf[i])) = (cBuf[i]) ;
    }     TxtEncrypt(uBuf, ReSize,PublicKey,mod);     WrNum= fwrite( (char*)uBuf,1, ReSize*sizeof(unsigned int), fipWr);
    printf("第%d次寫入%d字節(jié)!\n",record++, WrNum);
   }
}while(ReSize == BUFFER_SIZE);
}
void CENCRYPTION::Explain(UINT PrivateKey, UINT mod, FILE* fipRe, FILE* fipWr )
{
unsigned int ReSize;
unsigned int uBuf[BUFFER_SIZE]= {0,};
char cBuf[BUFFER_SIZE];
do
{
   ReSize= fread(uBuf, sizeof(unsigned int), BUFFER_SIZE,fipRe);
   if(ReSize)
   {
    unsigned int i;
    unsigned int record=1;
    unsigned int WrNum;
    TxtEncrypt(uBuf, ReSize,PrivateKey,mod);
    for(i=0; i<ReSize; i++)
     cBuf[i]= (char)(uBuf[i]);
    WrNum= fwrite( cBuf,1, ReSize, fipWr);   
    printf("第%d次寫入%d字節(jié)!\n",record++, WrNum);
   }

}while(ReSize == BUFFER_SIZE);
}



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
人人超碰91尤物精品国产| 一区二区三区蜜桃网| 欧美一区二区三区在线看| 欧美午夜寂寞影院| 欧美亚洲国产bt| 欧美三级在线看| 欧美精品在线一区二区三区| 欧美人与性动xxxx| 911精品产国品一二三产区| 欧美丰满一区二区免费视频| 欧美日韩国产高清一区二区三区| 欧美日韩卡一卡二| 91精品国产全国免费观看| 欧美tk丨vk视频| 欧美高清在线一区| 亚洲精品成人少妇| 热久久一区二区| 国产99久久久久久免费看农村| www.亚洲精品| 欧美又粗又大又爽| 美女被吸乳得到大胸91| 国产精品18久久久久| av在线不卡观看免费观看| 欧美日韩一区二区三区高清| 日韩午夜激情免费电影| 欧美激情一区二区三区在线| 亚洲人成影院在线观看| 日韩福利电影在线| 丁香激情综合五月| 欧美日韩在线精品一区二区三区激情| 日韩视频国产视频| 亚洲色图欧洲色图婷婷| 青青草国产成人99久久| 不卡一卡二卡三乱码免费网站| 欧美中文字幕一区二区三区 | 中文乱码免费一区二区| 亚洲免费观看高清完整版在线观看 | 欧美视频自拍偷拍| 精品久久人人做人人爽| 亚洲欧美中日韩| 久久精品国产**网站演员| 91在线免费看| 精品国产a毛片| 一区二区三区四区高清精品免费观看 | 欧美精品欧美精品系列| 中文字幕av不卡| 蜜桃在线一区二区三区| 色婷婷综合久久| 国产日韩欧美综合在线| 人妖欧美一区二区| 欧美亚洲综合另类| 国产精品国产a| 韩国v欧美v日本v亚洲v| 欧美日韩成人在线| 亚洲免费观看视频| 不卡的电影网站| 久久久久久麻豆| 六月丁香婷婷久久| 91精品在线免费观看| 亚洲最大色网站| 99久久精品国产导航| 中文字幕+乱码+中文字幕一区| 精品无码三级在线观看视频| 日韩一区二区三区三四区视频在线观看| 亚洲欧美日韩成人高清在线一区| 国v精品久久久网| 久久精品人人做人人综合| 久久国产生活片100| 日韩欧美区一区二| 蜜臀av一区二区| 日韩欧美视频在线| 久久综合资源网| 91蝌蚪porny成人天涯| 中文久久乱码一区二区| 福利一区二区在线| 欧美激情一二三区| 成人性生交大合| 国产免费观看久久| 成人福利视频网站| 亚洲欧美在线aaa| 91色|porny| 亚洲小说春色综合另类电影| 欧美中文一区二区三区| 婷婷中文字幕综合| 精品久久久久久久久久久院品网 | 国产人伦精品一区二区| 国产精品123| 国产精品美日韩| 91日韩一区二区三区| 亚洲综合在线电影| 8x8x8国产精品| 裸体在线国模精品偷拍| 久久久久久久久久久黄色| 国产福利91精品| 亚洲丝袜另类动漫二区| 欧美日韩中文国产| 欧美aaa在线| 欧美激情一区二区三区四区| 色噜噜狠狠色综合欧洲selulu| 亚洲最大成人网4388xx| 欧美一三区三区四区免费在线看| 免费人成精品欧美精品| 国产无一区二区| 91原创在线视频| 蜜芽一区二区三区| 国产精品全国免费观看高清 | 67194成人在线观看| 狠狠色伊人亚洲综合成人| 国产精品女主播av| 欧美精品tushy高清| 国产精品影视天天线| 一区二区免费看| 久久九九影视网| 欧美日韩精品一区二区三区四区 | 国产精品大尺度| 777欧美精品| 不卡一卡二卡三乱码免费网站 | 欧美一区二区三区播放老司机| 国产成人综合亚洲网站| 五月激情综合网| 国产精品成人一区二区三区夜夜夜| 欧美午夜寂寞影院| yourporn久久国产精品| 日产国产欧美视频一区精品| 亚洲欧洲99久久| 久久久久久日产精品| 91精品在线麻豆| 在线观看亚洲成人| 成人av影视在线观看| 极品美女销魂一区二区三区免费| 亚洲一区二区三区四区在线观看 | 粉嫩在线一区二区三区视频| 亚洲一区二区三区四区在线免费观看| 久久这里只精品最新地址| 欧美老女人第四色| 色婷婷综合久久久中文一区二区 | 亚洲影视在线播放| 欧美高清在线一区二区| 精品国产伦一区二区三区观看方式 | 婷婷成人综合网| 亚洲卡通动漫在线| 中文欧美字幕免费| 久久久www成人免费无遮挡大片| 欧美久久久久久久久中文字幕| 日本久久一区二区三区| 99精品桃花视频在线观看| 国产凹凸在线观看一区二区| 国产一区欧美二区| 精品一区在线看| 精品无人码麻豆乱码1区2区| 久久精品国产精品亚洲红杏| 免费人成精品欧美精品| 奇米精品一区二区三区四区| 日韩精品一二三| 美腿丝袜一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩成人av影视| 经典一区二区三区| 国产美女视频91| 成人一区二区三区视频在线观看| 成人性色生活片免费看爆迷你毛片| 成人性生交大片免费看在线播放| 国产成人精品免费一区二区| 成人国产免费视频| 91丨九色丨国产丨porny| 色婷婷av一区| 91麻豆精品91久久久久同性| 精品国产乱码久久久久久浪潮| 久久先锋影音av| 国产精品区一区二区三| 一区二区三区在线免费| 日韩国产高清影视| 国产乱码精品一区二区三区av| 国产999精品久久| 色欧美日韩亚洲| 日韩欧美在线影院| 国产精品私人影院| 亚洲福利电影网| 国产在线看一区| 91亚洲资源网| 日韩欧美激情一区| 国产欧美一区二区精品仙草咪| 成人欧美一区二区三区视频网页| 亚洲午夜免费电影| 国产一区二区成人久久免费影院 | 久久久精品黄色| 亚洲精品视频在线观看免费| 亚洲成人av一区二区| 国产一区 二区| 欧美欧美欧美欧美| 久久亚洲精精品中文字幕早川悠里 | 99久久er热在这里只有精品66| 欧洲亚洲国产日韩| 久久一夜天堂av一区二区三区| 亚洲精品五月天| 国产露脸91国语对白| 欧美乱妇23p| 亚洲欧美色图小说| 国产精品一二三| 91精品国产综合久久国产大片|