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

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

?? encryption.cs

?? JAVA實現的RSA公鑰加密方法
?? CS
字號:
using System;
using System.Runtime.InteropServices;
using System.Xml;
using System.Reflection;


namespace DJD.Security
{
	[Guid("2929CA28-4CA5-4f61-AC5E-B5FF7BADADEC"), ClassInterface(ClassInterfaceType.AutoDual)]
	public class keyParams
		
	{
		public keyParams(){}
		static BigInteger _N,_E,_D;

		public BigInteger N
		{
			get{return _N;}

			set{_N = value;}
		
		}
		public BigInteger E
		{
			get{return _E;}

			set{_E = value;}
		
		}
		public BigInteger D
		{
			get{return _D;}

			set{_D = value;}
		
		}

		
	}

	// algorithm taken from http://pajhome.org.uk/crypt/rsa/index.html 8/03 by Dom DiNatale
	// Java implementation adapted to C# from http://www.geocities.com/wailian/QuickStartRSA/
	// Also got some help from http://www.codeproject.com/csharp/biginteger.asp
	[Guid("BEA6B48A-A477-45a6-AA82-5DE407FF2502"), ClassInterface(ClassInterfaceType.AutoDual)]
	public sealed class Encryption : IDisposable
		
	{
		private keyParams _key = new keyParams();

		public Encryption(){}
		public Encryption(int bitSize)
		{
			if (!((bitSize == 8) | (bitSize == 16) | (bitSize == 32) | (bitSize == 64) | (bitSize == 128) | (bitSize == 256) | (bitSize == 512))){throw new  ArgumentException("Encryption supports only 8, 16, 32, 64, 128, 256, 512 bit encryption");};

			BigInteger q;
			BigInteger p;
			BigInteger m;
			
			p = BigInteger.genPseudoPrime(bitSize,10,new System.Random());

			do
			{
				q = BigInteger.genPseudoPrime(bitSize,10, new System.Random());
			}
			while(p == q);
				
			_key.N = (p*q);
			m = (p-1)*(q-1);
						
			_key.E = new BigInteger("10001", 16);
			_key.D = _key.E.modInverse(m);


		}


		public void GenerateKeys(int bitSize)
		{
			Encryption obj = new Encryption(bitSize);
			this._key = obj.ExportParamaters(true);
			obj.Dispose();
			obj = null;
		}
		
		public string Decrypt( BigInteger[] encrypted )
		{
			if (_key.D == 0) {throw new ApplicationException("Invalid key");};
			int i ;


			BigInteger[] decrypted = new BigInteger[encrypted.Length] ;
			
			for( i = 0 ; i < decrypted.Length ; i++ )
				
				decrypted[i] = encrypted[i].modPow((_key.D),(_key.N)) ;

			char[] charArray = new char[decrypted.Length] ;

			for( i = 0 ; i < charArray.Length ; i++ )
				charArray[i] = (char) ( (byte)decrypted[i].IntValue() ) ;

			return( new string( charArray ) ) ;
		} 

		public BigInteger[] Encrypt(string message )
		{
			if ((_key.E == 0) || (_key.N == 0)) {throw new ApplicationException("Invalid Key");};
			int i ;
			byte[] temp = new byte[1] ;

			byte[] digits = System.Text.ASCIIEncoding.ASCII.GetBytes(message);

			BigInteger[] bigdigits = new BigInteger[digits.Length] ;

			for( i = 0 ; i < bigdigits.Length ; i++ )
			{
				temp[0] = digits[i] ;
				bigdigits[i] = new BigInteger( temp ) ;
			}

			BigInteger[] encrypted = new BigInteger[bigdigits.Length] ;

			for( i = 0 ; i < bigdigits.Length ; i++ )
				encrypted[i] = bigdigits[i].modPow( _key.E,_key.N) ;


			return( encrypted ) ;
		} 

		
		public void Dispose()
		{
			GC.SuppressFinalize(this);
		}
								 
		public keyParams ExportParamaters(bool includePrivateParams)
		{
			keyParams pKey = _key;

			if (!includePrivateParams)
			{
				pKey.D = 0;
			}
			return pKey;
		}

		public string ExportParamatersAsXML(bool includePrivateParams)
		{

			keyParams pKey = _key;

			if (!includePrivateParams)
			{
				pKey.D = 0;
			}


			
			string str = "<key><N>" + System.Convert.ToBase64String(pKey.N.getBytes()) + "</N><E>" + System.Convert.ToBase64String(pKey.E.getBytes()) + "</E><D>" + System.Convert.ToBase64String(pKey.D.getBytes()) + "</D></key>";
			return str;
		}

		public void ExportParamatersToFile(bool includePrivateParams, string FilePath)
		{
			System.IO.FileInfo fl = new System.IO.FileInfo(FilePath);
			System.IO.FileStream fs = fl.OpenWrite();
			string str = ExportParamatersAsXML(includePrivateParams);
			byte[] b = new byte[str.Length];
			b = System.Text.ASCIIEncoding.ASCII.GetBytes(str);
			fs.Write(b,0,b.Length);
			fs.Close();
			fs = null;
			fl = null;
		
		}

		public void ImportKeyParameters(keyParams key)
		{
			
			_key.D = key.D;
			_key.E = key.E;
			_key.N = key.N;
			
		}
		public string ImportKeyParameters(System.IO.FileInfo keyFile)
		{
			keyParams pKey = new keyParams();
			XmlTextReader reader = new XmlTextReader(keyFile.FullName);
			while (reader.Read())
			{
				if (reader.NodeType == XmlNodeType.Element)
				{
					if (reader.Name == "N")
					{
						reader.Read();
						byte[] b = Convert.FromBase64String(reader.Value);
						pKey.N = new BigInteger(b);
					}
					if (reader.Name == "E")
					{
						reader.Read();
						byte[] b = Convert.FromBase64String(reader.Value);
						pKey.E = new BigInteger(b);
					}
					if (reader.Name == "D")
					{
						reader.Read();
						byte[] b = Convert.FromBase64String(reader.Value);
						pKey.D = new BigInteger(b);
					}
				}	
			};
			_key = pKey;
			return "";
		}

		//		public string ImportKeyParameters(string strXML)
		//		{
		//			keyParams pKey = new keyParams();
		//
		//			string strN = "";
		//			string strE = "";
		//			string strD = "";
		//
		//			int i, j;
		//			i = strXML.IndexOf("<N>");
		//			j = strXML.IndexOf("</N>");
		//			strN = Mid(str,i,j-i);
		//			
		//			i = strXML.IndexOf("<E>");
		//			j = strXML.IndexOf("</E>");
		//			strE = Mid(str,i,j-i);
		//			
		//			i = strXML.IndexOf("<D>");
		//			j = strXML.IndexOf("</D>");
		//			strD = Mid(str,i,j-i);
		//
		//			byte[] b;
		//
		//			b = Convert.FromBase64String(strN);
		//			pKey.N = new BigInteger(b);
		//					
		//			b = Convert.FromBase64String(strE);
		//			pKey.E = new BigInteger(b);
		//
		//			b = Convert.FromBase64String(strD);
		//			pKey.D = new BigInteger(b);
		//
		//			_key = pKey;
		//			return "";
		//		}
		
		public string GetJavaScriptClientCode()
		{
			System.IO.Stream st = GetType().Assembly.GetManifestResourceStream("DJD.Security.BigInt.js");
			byte[] b = new byte[st.Length];
			st.Read(b,0,(int)st.Length);
			st.Close();

			string strBigInt = System.Text.ASCIIEncoding.ASCII.GetString(b);

			

			return  
				"<script language=JavaScript>\n" +
				strBigInt +
				"\n\n" +
				"// To use the encrypt function, use an onclick or onsubmit event of a button to encrypt a textbox's value property.\n" +
				"// The following example puts the value of the encrypted password into a hidden input and makes the password text *'s the length of the original password.\n" +
				"// <INPUT type=" + (char)34 + "submit" + (char)34 + " value=" + (char)34 + "Login" + (char)34 + " OnClick=" + (char)34 + "var s = txtPassword.value; password.value=Encrypt(s,'<%=Session(" + (char)34 + "n" + (char)34 + ")%>','<%=Session(" + (char)34 + "e" + (char)34 + ")%>'); var strStar = ''; for (i = 0; i < s.length; i++) {strStar = strStar + '*';}  txtPassword.value = strStar" + (char)34 + "><input id=" + (char)34 + "password" + (char)34 + " type=" + (char)34 + "hidden" + (char)34 + " name=" + (char)34 + "password" + (char)34 + ">\n" +
				"function Encrypt (str, n, e) {\n" +
				"	var n=str2bigInt(n,16,0);\n" +
				"	var x=str2bigInt(str,95,n.length);\n" +
				"	var y=str2bigInt(e,16,0);\n" +
				"	powMod(x,y,n,0);\n" +
				"	x = bigInt2str(x,16);\n" +
				"	return x;\n" +
				"}\n" +		
				"</script>\n";
		}
		
		

	
        
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产美女视频91| 久久99精品一区二区三区| 视频一区二区三区在线| 久久99日本精品| 91国在线观看| 欧美国产一区二区| 麻豆免费看一区二区三区| 91小视频免费观看| 精品国产一区二区三区av性色| 中文字幕在线一区| 免费xxxx性欧美18vr| 91麻豆蜜桃一区二区三区| 亚洲精品在线一区二区| 婷婷久久综合九色综合绿巨人 | 色呦呦日韩精品| 国产三级一区二区| 久久精品国产免费看久久精品| 欧美性视频一区二区三区| 日本一区二区三区视频视频| 青青青爽久久午夜综合久久午夜| 欧洲国产伦久久久久久久| 欧美韩国一区二区| 国产剧情av麻豆香蕉精品| 欧美一区二区三区喷汁尤物| 亚洲一区电影777| 91伊人久久大香线蕉| 国产精品婷婷午夜在线观看| 国产福利精品导航| 久久视频一区二区| 狠狠色丁香九九婷婷综合五月| 777色狠狠一区二区三区| 丝袜美腿成人在线| 69p69国产精品| 日本欧美一区二区在线观看| 欧美另类久久久品| 日韩精品欧美精品| 欧美va亚洲va香蕉在线| 国产在线观看免费一区| 久久综合成人精品亚洲另类欧美 | 国产激情91久久精品导航 | 欧美精品三级在线观看| 丝袜美腿一区二区三区| 91 com成人网| 精品一区二区在线视频| 国产亚洲欧洲一区高清在线观看| 国产精品自产自拍| 亚洲视频狠狠干| 欧美日韩aaaaaa| 久久99热狠狠色一区二区| 国产日本欧美一区二区| 色欧美日韩亚洲| 丝袜亚洲另类欧美综合| 国产亚洲精品7777| 欧洲精品一区二区三区在线观看| 日韩电影在线观看网站| 国产日产精品一区| 欧美色综合久久| 国产一二精品视频| 一区二区国产盗摄色噜噜| 欧美精品久久一区二区三区| 国产精品中文有码| 夜夜爽夜夜爽精品视频| 日韩久久久久久| 色综合一区二区三区| 奇米在线7777在线精品| 国产精品美女一区二区在线观看| 欧美色男人天堂| 成人免费观看男女羞羞视频| 天堂一区二区在线| 亚洲桃色在线一区| 精品国产乱码91久久久久久网站| 99精品国产热久久91蜜凸| 美女视频黄a大片欧美| 一区精品在线播放| 精品免费一区二区三区| 色综合中文字幕| 国产黄色精品网站| 婷婷一区二区三区| 亚洲区小说区图片区qvod| 日韩午夜在线影院| 欧美视频在线不卡| 波多野结衣中文字幕一区| 美脚の诱脚舐め脚责91| 一区二区三区四区在线| 国产午夜精品美女毛片视频| 在线不卡一区二区| 色噜噜狠狠一区二区三区果冻| 久久精品国产在热久久| 亚洲18女电影在线观看| 日韩毛片在线免费观看| 日韩亚洲欧美成人一区| 日本高清视频一区二区| 成人污污视频在线观看| 卡一卡二国产精品 | 亚洲精品videosex极品| 久久先锋资源网| 日韩一区二区精品| 色综合久久天天| 91在线精品一区二区三区| 韩国精品主播一区二区在线观看| 亚洲午夜久久久久久久久久久 | 成人一区在线看| 九一九一国产精品| 免费久久99精品国产| 婷婷开心激情综合| 亚洲bt欧美bt精品777| 亚洲一区在线观看免费观看电影高清| 国产精品热久久久久夜色精品三区| 精品欧美一区二区久久| 日韩色在线观看| 精品久久久久久久一区二区蜜臀| 日韩小视频在线观看专区| 日韩欧美一二三区| 欧美成人a视频| 欧美精品一区二区三区蜜桃| 日韩精品一区在线| 精品剧情v国产在线观看在线| 日韩一区二区电影网| 欧美成人伊人久久综合网| 欧美一区二区久久久| 日韩欧美国产一二三区| www激情久久| 欧美国产精品中文字幕| 国产精品福利一区二区三区| 国产精品久久777777| 亚洲另类色综合网站| 一二三四区精品视频| 日韩成人午夜精品| 国产激情精品久久久第一区二区| 成人精品视频一区| 欧美亚洲国产bt| 欧美一区二区三区不卡| 久久免费电影网| 国产精品视频一区二区三区不卡| 国产精品第四页| 亚洲国产成人91porn| 久久不见久久见免费视频7| 国产成人在线视频网站| 成人动漫精品一区二区| 欧美亚洲综合色| 欧美成人伊人久久综合网| 中文字幕一区二区三| 日韩国产欧美在线观看| 国产美女久久久久| 欧美视频完全免费看| 久久综合九色综合97婷婷女人 | 亚洲免费观看高清完整版在线| 亚洲精品写真福利| 麻豆91精品视频| 99国产精品久久久久| 91精品久久久久久久久99蜜臂| 国产视频一区在线播放| 亚洲综合一区二区精品导航| 免费成人av资源网| 色婷婷精品久久二区二区蜜臂av| 日韩欧美中文字幕制服| 亚洲少妇最新在线视频| 精品一区二区三区视频在线观看| 99久久综合国产精品| 91精品国产乱码| 亚洲欧美另类久久久精品| 免费人成精品欧美精品| 91国偷自产一区二区使用方法| 欧美xxxxx裸体时装秀| 一区二区三区欧美日韩| 国产精品一区二区免费不卡| 欧美天天综合网| 中文字幕一区不卡| 国产精品系列在线播放| 欧美一卡二卡在线观看| 一区二区三区日韩| 成人午夜电影小说| 亚洲精品一区二区三区99| 亚洲国产欧美在线人成| 91免费版pro下载短视频| 久久久国产精华| 久久丁香综合五月国产三级网站| 91久久精品网| 综合色天天鬼久久鬼色| 大白屁股一区二区视频| 久久综合色一综合色88| 蜜臀av性久久久久蜜臀aⅴ| 欧美午夜精品免费| 亚洲一区二区三区影院| 99精品视频中文字幕| 国产精品伦理一区二区| 国产成人综合亚洲网站| 久久精品欧美一区二区三区不卡| 蜜臀精品一区二区三区在线观看| 欧美美女黄视频| 亚洲成人综合在线| 欧美高清激情brazzers| 视频一区中文字幕国产| 欧美日韩国产免费一区二区| 亚洲综合自拍偷拍| 欧美在线一区二区三区| 午夜影视日本亚洲欧洲精品| 欧美日韩一区二区三区在线看| 亚洲综合丁香婷婷六月香| 99re成人精品视频|