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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rsa.cpp

?? 使用RSA算法對一個數字進行加密和解密。可以自由指定p
?? CPP
字號:
#include<iostream>
#include<math.h>
using namespace std;

class Rsa
{
private:
	int p, q;	//two different primes
	int n;		//p*q
	int e;		//choose one
	int d;		//calculated
public:
	Rsa(int a, int b) {		//constructor
		p = a;
		q = b;
		n = a*b;
		e = confirmE(a, b);
		d = confirmD(e, a,b);
	}
//========constructor in use==========
	void swap(int a, int b) {	//swap two nums
		int c;
		c = a;
		a = b;
		b = c;
	}
	int gcd(int a, int b) {		//get gcd
		if(a == 0) {
			return b;
		}
		if(b == 0) {
			return a;
		}
		if(b < a) {
			swap(a ,b);
		}
		int c;
		for(c = a % b; c > 0; c = a % b) {
			a = b;
			b = c;
		}
		return b;
	}
	int confirmE(int p, int q) {			//confirm the "E"
		int phi;
		phi = (p-1)*(q-1);
		int e;
		for(e = 2; gcd(phi, e) != 1; e++) {
		}
		return e;
	}
	int confirmD(int e, int p, int q) {			//confirm the "D"
		int phi = (p-1)*(q-1);
		int u1, u2, u3;
		int v1, v2, v3;
		int t1, t2, t3;
		int uu, vv;
		int temp;
		int inverse;
		u1 = 1;
		u2 = 0;
		u3 = phi;
		v1 = 0;
		v2 = 1;
		v3 = e;
		
		while(v3 != 0) {
			temp = u3 / v3;
			
			t1 = u1 - temp*v1;
			t2 = u2 - temp*v2;
			t3 = u3 - temp*v3;
			
			u1 = v1;
			u2 = v2;
			u3 = v3;
			
			v1 = t1;
			v2 = t2;
			v3 = t3;
		}
		uu = u1;
		vv = u2;
		
		if(vv < 0) {
			inverse = vv + phi;
		}
		else {
			inverse = vv;
		}
		return inverse;
	}

	long mod(long base,long exponent,long num) {	//計算形如base^exponent mod num
		long bin[32], i = 0, result(1);
		while (exponent != 0) {		//轉換成二進制
			long temp;
			temp = exponent%2;
			bin[i++] = temp;
			exponent = exponent/2;
		}
		i = i-1;					//i自減1,回到二進制的最高位
		while(i >= 0) {				//快速指數算法
			long c(0);
			c = 2*c;
			result = (result*result)%num;
			if(bin[i] == 1) {
				c = c+1;
				result = (result*base)%n;
			}
		i--;
		}
		return result;
	}

//====================================
	void setP(int a) {
		p = a;
	}
	void setQ(int a) {
		q = a;
	}
	int getP() {
		return p;
	}
	int getQ() {
		return q;
	}
	int getN() {			//n = p*q
		return n;
	}
	int getE() {
		return e;
	}
	int getD() {
		return d;
	}
	long getPhi() {
		return (p-1)*(q-1);
	}

//========get KU======================
	void getKu() {		//Key Public
		cout<<"公鑰為:{"<<e<<","<<n<<"}"<<endl;
	}
	void getKr() {		//Key Private
		cout<<"私鑰為:{"<<d<<","<<n<<"}"<<endl;
	}
};


//======================================
long isPrime(long num) {		//Is prime number?
	long temp, i;
	temp = sqrt((double)num);
	for(i = 2; i <= temp; i++) {
		if(num%i == 0) {
			break;
		}
	}
	if(i>temp) {
		return 1;
	}
	else {
		return 0;
	}
}

long Auto(long t) {
	long prime;
	for(prime = t; isPrime(prime) == 0; prime = t) {
		t++;
	}
	return prime;
}

int input(char word) {				//接受數字并判斷是否素數
	int inputnum;
	char yesno;
	cout<<"請輸入"<<word<<":";
	cin>>inputnum;			//get inputnum
//=======input over, check it===========
	while(isPrime(inputnum) == 0) {
		cout<<"您輸入的不是素數。"<<endl;
		while((yesno != 'n') & (yesno != 'y')) {
			cout<<"是否讓系統自動為你生成一個素數。(y/n):";
			cin>>yesno;
		}
		if(yesno != 'y') {
			cout<<"請輸入"<<word<<":";
			cin>>inputnum;
		}
		else {
			inputnum = Auto(inputnum);
			cout<<word<<":"<<inputnum<<endl;
		}
		yesno = 0;
	}
	return inputnum;
}

void outputAllArguments(Rsa rsa) {				//輸出參數值
	cout<<"==========首先輸出各參數值=========="<<endl;
	cout<<"p="<<rsa.getP()<<endl;
	cout<<"q="<<rsa.getQ()<<endl;
	cout<<"n=p*q="<<rsa.getN()<<endl;
	cout<<"Φ(n)=(p-1)*(q-1)="<<rsa.getPhi()<<endl;
	cout<<"e="<<rsa.getE()<<endl;
	cout<<"d="<<rsa.getD()<<endl;
	rsa.getKu();
	rsa.getKr();
	cout<<"==========參數值輸出結束============"<<endl;
}

void main()
{
//	char yesno;
	long p;
	long q;
	char quit;
//=======output congratulations=========
	cout<<"===========8000104008彭鵬============="<<endl;
	cout<<"RSA加密軟件"<<endl<<endl;
	cout<<"通過輸入兩個素數p和q,產生一個公鑰(e,n)和一個私鑰(d,n)。"<<endl;
	cout<<"其中公鑰用于加密,私鑰用于解密。"<<endl;
	while(quit != 'n') {
		//=======input p & q======================
		cout<<"===================================="<<endl;
		p = input('p');				//input p
		q = input('q');				//input q
		//=======p & q are all over===========

		//=======caculate=======================
		Rsa rsa1(p, q);
		cout<<"p和q都已經輸入完畢,下面進行加密和解密進程。"<<endl;
		//=======output all arguments===========
		outputAllArguments(rsa1);
		//=======input num======================
		cout<<"輸入明文數字:"<<endl;
		long mnum;			//明文數字
		cin>>mnum;
		cout<<"輸入明文為:"<<mnum<<endl;
		//======================================
		cout<<"輸出密文為:";
		long c_num;			//密文數字
		//	c_num = c(mnum, rsa1);		//encryption
		c_num = rsa1.mod(mnum, rsa1.getE(), rsa1.getN());		//encryption
		cout<<c_num<<endl;
		//======================================
		cout<<"輸出明文為:";
		long m_num;			//解密出的明文數字,理論應與mnum一樣
		//	m_num = m(c_num, rsa1);		//decryption
		m_num = rsa1.mod(c_num, rsa1.getD(), rsa1.getN());		//decryption
		cout<<m_num<<endl;
		//===========coutinue ?=================
		cout<<"是否繼續使用?(按任意鍵繼續,按'n'結束)";
		cin>>quit;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品办公室少妇高潮对白| av午夜一区麻豆| 亚洲精品视频免费看| 欧美国产禁国产网站cc| 久久婷婷久久一区二区三区| 精品女同一区二区| 欧美mv和日韩mv的网站| 精品久久99ma| 欧美国产一区二区在线观看 | 国产人成亚洲第一网站在线播放| 欧美巨大另类极品videosbest| 91成人国产精品| 欧美女孩性生活视频| 制服丝袜中文字幕一区| 日韩一区二区电影网| 91精品国产日韩91久久久久久| 日韩一区二区三区在线视频| 欧美精品一区二区三区四区| 久久亚洲一区二区三区四区| 中文幕一区二区三区久久蜜桃| 中文字幕日韩一区二区| 五月激情综合色| 激情av综合网| 99久久国产综合精品女不卡| 欧美视频一二三区| 欧美精品一区二区三区视频 | 在线观看av一区二区| 欧美午夜电影在线播放| 日韩午夜小视频| 国产精品久久久久影院亚瑟| 亚洲综合在线第一页| 国产成人超碰人人澡人人澡| eeuss鲁一区二区三区| 欧美午夜视频网站| 国产婷婷一区二区| 亚洲成人免费视频| 国产69精品久久久久毛片| 欧美日韩综合在线| 久久久精品黄色| 五月婷婷综合激情| 高清国产一区二区三区| 欧美日韩免费高清一区色橹橹| 精品91自产拍在线观看一区| 洋洋av久久久久久久一区| 国产在线精品一区二区不卡了| 色视频欧美一区二区三区| 久久亚洲春色中文字幕久久久| 夜夜精品视频一区二区 | 一区二区三区波多野结衣在线观看| 天天做天天摸天天爽国产一区| 国产不卡免费视频| 欧美丰满高潮xxxx喷水动漫| 亚洲欧美日韩国产中文在线| 国内精品国产成人国产三级粉色| 欧美三级中文字幕在线观看| 亚洲国产精品二十页| 九九视频精品免费| 欧美日韩免费不卡视频一区二区三区| 中文字幕第一区综合| 狠狠网亚洲精品| 91精品国产麻豆国产自产在线| 一区二区三区资源| 99re成人精品视频| 国产精品日韩精品欧美在线| 国内一区二区视频| 精品国精品自拍自在线| 日韩av一区二区在线影视| 欧美在线视频日韩| 亚洲免费电影在线| 一本久道中文字幕精品亚洲嫩| 中文久久乱码一区二区| 国产精品资源在线看| 久久嫩草精品久久久精品| 另类欧美日韩国产在线| 日韩欧美二区三区| 麻豆精品国产传媒mv男同| 欧美一区二区三级| 日本成人中文字幕在线视频| 欧美二区乱c少妇| 日韩精品1区2区3区| 91麻豆精品国产自产在线观看一区| 一区二区三区中文字幕精品精品| 日本精品一区二区三区高清 | 精品一二三四在线| 欧美成人一区二区三区在线观看| 日韩1区2区3区| 精品美女一区二区| 国产成人免费在线观看| 国产精品蜜臀在线观看| 99久久精品费精品国产一区二区| 日韩理论在线观看| 欧美日韩一区二区三区免费看| 亚洲国产欧美日韩另类综合 | www.亚洲国产| 夜夜嗨av一区二区三区| 日韩一区二区三区在线| 国产精品影视在线观看| 亚洲免费大片在线观看| 在线不卡的av| 国产成人综合在线| 亚洲一区二区av电影| 欧美一级欧美一级在线播放| 国产xxx精品视频大全| 成人免费一区二区三区视频| 欧美日韩一区二区在线观看| 国产真实精品久久二三区| 日韩一区欧美一区| 91麻豆精品国产91久久久| 国产一区二区精品久久99| 樱花影视一区二区| 欧美精品一区二区精品网| av网站免费线看精品| 日本视频免费一区| 日韩理论片中文av| 欧美一二三四区在线| 99re8在线精品视频免费播放| 性欧美大战久久久久久久久| 日本一区二区三区四区在线视频| 91福利国产成人精品照片| 国产精品中文欧美| 香蕉久久夜色精品国产使用方法 | 色综合久久久久综合体桃花网| 日韩精品一二区| 亚洲视频 欧洲视频| 欧美变态凌虐bdsm| 欧美日韩黄色影视| 91视频免费播放| 国产自产视频一区二区三区| 亚洲444eee在线观看| 国产精品久久久久婷婷| 精品国内二区三区| 欧美日韩电影在线播放| 99久久国产综合精品女不卡| 国产在线精品一区二区不卡了| 亚洲h动漫在线| 三级久久三级久久久| 怡红院av一区二区三区| 中文字幕精品一区二区精品绿巨人| 欧美疯狂性受xxxxx喷水图片| 91视频在线观看| 成人动漫在线一区| 成人中文字幕电影| 国产成人av电影在线播放| 国产综合色视频| 精品亚洲国内自在自线福利| 青青草97国产精品免费观看| 亚洲国产欧美在线人成| 亚洲国产精品自拍| 亚洲一区二区三区精品在线| 亚洲综合丝袜美腿| 亚洲一区欧美一区| 亚洲国产精品一区二区尤物区| 亚洲日本青草视频在线怡红院 | 91久久精品网| 91日韩在线专区| 在线视频你懂得一区| 在线视频你懂得一区| 欧美视频中文字幕| 欧美美女一区二区| 欧美一区二区性放荡片| 欧美一二三在线| 欧美va日韩va| 国产欧美日韩亚州综合| 国产精品女上位| 亚洲同性同志一二三专区| 一区二区三区不卡视频在线观看 | 国产一区二区精品久久91| 国产又黄又大久久| 成人激情视频网站| 欧美在线视频全部完| 欧美日韩国产精品成人| 欧美成人精品1314www| 国产色91在线| 亚洲欧美一区二区三区孕妇| 亚洲成a人片在线不卡一二三区| 午夜一区二区三区视频| 激情久久五月天| 91蝌蚪国产九色| 欧美一区二区免费视频| 欧美激情一区二区三区不卡 | 日韩免费一区二区三区在线播放| 日韩欧美黄色影院| 欧美韩国日本一区| 亚洲成人精品一区| 国产精品一区二区免费不卡| 91浏览器在线视频| 日韩午夜电影av| 亚洲少妇中出一区| 久久国产精品一区二区| av欧美精品.com| 日韩视频一区二区| 亚洲你懂的在线视频| 日产国产高清一区二区三区| 成人免费不卡视频| 91麻豆精品国产自产在线观看一区| 国产欧美综合在线| 天堂久久久久va久久久久| 国产v综合v亚洲欧| 日韩亚洲欧美综合| 一区av在线播放|