⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 default.aspx.cs

📁 使用C#.net开发实现的RSA算法
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Web.Security;
using System.Configuration;

namespace myRSA
{
	/// <summary>
	/// WebForm1 的摘要说明。
	/// </summary>
	public class RSA : System.Web.UI.Page
	{
		int []Rand_Num;		
		int m_Ji,n_Ji_Cha1;
		protected System.Web.UI.WebControls.Label Prime1_label;
		protected System.Web.UI.WebControls.Label Prime2_label;
		protected System.Web.UI.WebControls.Label Suijishu1;
		protected System.Web.UI.WebControls.Label Suijishu2;
		protected System.Web.UI.WebControls.TextBox Miwen;
		protected System.Web.UI.WebControls.Label Mi_wen;
		protected System.Web.UI.WebControls.Label Ming_wen;
		protected System.Web.UI.WebControls.TextBox Mingwen;
		protected System.Web.UI.WebControls.Label Label1;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.Label Label4;
		protected System.Web.UI.WebControls.Label Label5;
		protected System.Web.UI.WebControls.Label Label6;
		protected System.Web.UI.WebControls.Button Button1;
		protected System.Web.UI.WebControls.TextBox Si_Yao;
		protected System.Web.UI.WebControls.TextBox Mi_wen_text;
		protected System.Web.UI.WebControls.TextBox Ming_wen_text;
		protected System.Web.UI.WebControls.Label Suijishu_1;
		protected System.Web.UI.WebControls.Label Suijishu_2;
		protected System.Web.UI.WebControls.Label Prime1;
		protected System.Web.UI.WebControls.Label Prime2;
		
		protected System.Web.UI.WebControls.Button Submit;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.Submit.Click += new System.EventHandler(this.Submit_Click);
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		protected void Submit_Click(object sender, System.EventArgs e)
		{
			

			Miwen.Text="";
			RSA Rsa=new RSA();
			Rand_Num=Rsa.Rdm_Sushu();

			m_Ji=Rsa.Sushu_Ji(Rand_Num[0],Rand_Num[1]);
			n_Ji_Cha1=Rsa.Sushu_Cha1_Ji(Rand_Num[0],Rand_Num[1]);
           
			Suijishu_1.Text=Rand_Num[0].ToString();
			Suijishu_2.Text=Rand_Num[1].ToString();

			Prime1.Text=Rsa.Get_e(n_Ji_Cha1) + "," + m_Ji;
			Prime2.Text=Rsa.Get_d(n_Ji_Cha1,Rsa.Get_e(n_Ji_Cha1))+ "," + m_Ji;	

			char[] Ming;
			Ming=Mingwen.Text.ToCharArray();
			foreach(char c in Ming)
			{   
				string ming;
				int Ming_Num=Rsa.Jia_Jie_Mi((int)c,Rsa.Get_e(n_Ji_Cha1),m_Ji);
				Char[] Ming_Char=Ming_Num.ToString().ToCharArray();
				

				if(Ming_Char.GetLength(0)==1)
				{
					ming="000"+Ming_Char[0].ToString();
					Ming_Char=ming.ToCharArray();
				}

				if(Ming_Char.GetLength(0)==2)
				{
					ming="00"+Ming_Char[0].ToString()+Ming_Char[1].ToString();
					Ming_Char=ming.ToCharArray();
				}

				if(Ming_Char.GetLength(0)==3)
				{
					ming="0"+Ming_Char[0].ToString()+Ming_Char[1].ToString()+Ming_Char[2].ToString();
					Ming_Char=ming.ToCharArray();
				}

				foreach(char m in Ming_Char)
				{					
					Miwen.Text+=m;
				}
			}	
			

			

			//Miwen.Text=Rsa.Jia_Jie_Mi(Ming_Number,Rsa.Get_e(n_Ji_Cha1),m_Ji).ToString();         

		}

		//产生一个1-10000的随机数
		private int Rdm_Number()
		{			
			Random Rdm = new Random(); 
			int Rdm_Num = (int)(100*(Rdm.NextDouble()));
			return Rdm_Num;
		}

		

		//判断一个数是否是素数
		private bool Su_Shu(int Num)
		{	
			bool flag=true;	
			for(int start=2;start<(Num/2);start++)
			{				
				if(Num%start==0)
				{
					flag=false;
					break;
				}						
			}
			return flag;
		}
       
		//产生两个随机的素数
		private int[] Rdm_Sushu()
		{
			int[] Rsa_Num=new int[2];			

			RSA Rsa=new RSA();		

			Rsa_Num[0]=Rsa.Rdm_Number();   
			Rsa_Num[1]=Rsa.Rdm_Number();  

			if((Rsa_Num[0]==0)||(Rsa_Num[0]==1)||(Rsa_Num[1]==0)||(Rsa_Num[1]==1)||(Rsa_Num[0]==Rsa_Num[1])||(!Rsa.Su_Shu(Rsa_Num[0]))||(!Rsa.Su_Shu(Rsa_Num[1])))
			{
				while((Rsa_Num[0]==0)||(Rsa_Num[0]==1)||(Rsa_Num[1]==0)||(Rsa_Num[1]==1)||(Rsa_Num[0]==Rsa_Num[1])||(!Rsa.Su_Shu(Rsa_Num[0]))||(!Rsa.Su_Shu(Rsa_Num[1])))
				{
					Rsa_Num[0]=Rsa.Rdm_Number();   
					Rsa_Num[1]=Rsa.Rdm_Number();
				}					
			}
			
			return Rsa_Num;			
		}	
	
		private int Sushu_Ji(int m,int n)
		{
			int t;
			t=m*n;
			return t;
		}

		private int Sushu_Cha1_Ji(int m,int n)
		{
			int t;
			t=(m-1)*(n-1);
			return t;
		}

		private int Get_e(int m)
		{	
			RSA Rsa=new RSA();			
			m=m-1;
			int start=m;
			
			if(Rsa.Su_Shu(m))
			{
				start=m;
			}
			else
			{			
				for(start=2;start<m/2;start++)
				{				
					if(m%start==0)
					{
						break;		
					}		
				}				
			}
			return start;
		}

		private int Get_d(int n,int e)
		{
			int d;
			d=(n-1)*(e-1)/e+1;
			return d;
		}

				
		
		private int Jia_Jie_Mi(int m,int n,int x)
		{	
			int d=m;
			int Yushu=d%x;			
			for(int i=1;i<n;i++)
			{			   
				d=Yushu*m;
				Yushu=d%x;
			}
			return Yushu;
		}

		private void Button1_Click(object sender, System.EventArgs e)
		{
			Ming_wen_text.Text="";
			RSA Rsa=new RSA();
			string[] Siyao_Num;

			Siyao_Num=Si_Yao.Text.ToString().Split(new Char[] {','}, 2);
			int Siyao_d=Convert.ToInt32(Siyao_Num[0]);
			int Siyao_n=Convert.ToInt32(Siyao_Num[1]);

			for(int i=0;i<=(Mi_wen_text.Text.Length-4);)
			{
			
				int Mi_Number=Convert.ToInt32(Mi_wen_text.Text.Substring(i,4));  
			

				string Ming_wen=Rsa.Jia_Jie_Mi(Mi_Number,Siyao_d,Siyao_n).ToString(); 
				char Ming_char=Convert.ToChar(Convert.ToInt32(Ming_wen));
			
				Ming_wen_text.Text+=Ming_char.ToString();
				i=i+4;
			}
 		
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -