📄 default.aspx.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 + -