📄 default.aspx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Security.Cryptography;
using System.Text;
using System.Data.SqlClient;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
RSAKey();
}
#region RSA的加密函数
public string RSAEncrypt(string m_strEncryptString)
{
try
{
byte[] PlainTextBArray;//定义存储加密字符串数组
byte[] CypherTextBArray;//义存储加密字后符串数组
string Result;
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
//将公有密钥从publickey.txt中读出来加密字符串
String path = Server.MapPath("key");//保存密钥文件夹
//将私有密钥保存在文件
StreamReader redKey = new StreamReader(path + "/publickey.txt", UTF8Encoding.UTF8);
rsa.FromXmlString(redKey.ReadToEnd());//初始化密钥
redKey.Close();
PlainTextBArray = (new UnicodeEncoding()).GetBytes(m_strEncryptString);//把要加密的字符串转换成字节数组
CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);//对字符串数组进行加密
Result = Convert.ToBase64String(CypherTextBArray);//显示加密信息
return Result;
}
catch (Exception ex)
{
throw new Exception("在加密的时候出现错误!错误提示: \n" + ex.Message);
}
}
#endregion
//检测用户名是否存在
public int CheckUser()
{
SqlConnection sqlconn = new SqlConnection("server=(local);uid=sa;pwd=;database=db_08");
int intCount = 0;
if (txtLoginName.Text == "")
{
Response.Write("<script language='javascript'>alert('会员登录名不能为空!');</script>");
}
else
{
string sqlstr = "select * from tb_04 where Name='" + this.txtLoginName.Text + "'";
sqlconn.Open();
SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn);
intCount = Convert.ToInt32(sqlcom.ExecuteScalar());
sqlconn.Close();
}
return intCount;
}
//检测用户名
protected void btnTest_Click(object sender, EventArgs e)
{
int intCount = CheckUser();//调用方法检测用户名是否存在
if (intCount != 0)
{
Response.Write("<script language='javascript'>alert('该会员已经注册过');</script>");
return;
}
else
{
Response.Write("<script language='javascript'>alert('您可以进行正常注册');</script>");
}
}
//加密字符串
//加密字符串
public string Encrypting(string strSource)
{
try
{
//把字符串放到byte数组中
byte[] bytIn = System.Text.Encoding.Default.GetBytes(strSource);
//建立加密对象的密钥和偏移量对TripleDES,采取24字节或192位的密钥和初始向量
byte[] key ={ 53, 68, 57, 79, 159, 168, 157, 179, 201, 40, 0, 123, 210, 189, 167, 1 };
byte[] IV ={ 5, 13, 46, 97, 69, 109, 177, 39 };
//实例 TripleDESCryptoServiceProvider类将字符串写入流中
RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider();
rc2.IV = IV;
rc2.Key = key;
//加密符串
ICryptoTransform encrypto = rc2.CreateEncryptor();//实义加密转换
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
byte[] bytOut = ms.ToArray();
return System.Convert.ToBase64String(bytOut);
}
catch (Exception ex)
{
throw new Exception("在文件加密的时候出现错误!错误提示: \n" + ex.Message);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
int intCount = CheckUser();//调用方法检测用户名是否存在
if (intCount != 0)
{
Response.Write("<script language='javascript'>alert('该会员已经注册过');</script>");
return;
}
//调用方法将注册信息加密
string sqlstr = "insert into tb_04 "
+ "values('" + txtLoginName.Text + "','" + ddlSex.SelectedValue
+ "','" + RSAEncrypt(txtPwd.Text.Trim()) + "','" + txtQuePwd.Text
+ "','" + RSAEncrypt(txtAnsPwd.Text.Trim()) + "','" + RSAEncrypt(txtEmail.Text.Trim()) + "')";
SqlConnection sqlconn = new SqlConnection("server=(local);uid=sa;pwd=;database=db_08");
sqlconn.Open();
SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn);
sqlcom.ExecuteNonQuery();
sqlconn.Close();
Response.Write("<script>alert('注册成功!');</script>");
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<script>window.close();</script>");
}
//随机产生密钥RSA 的密钥产生
//产生私钥 和公钥
public void RSAKey()
{
try
{
System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
string privatekey = rsa.ToXmlString(true);//产生公私密钥
string publickey = rsa.ToXmlString(false);//产生公有密钥
String path = Server.MapPath("key");//保存密钥文件夹
////将私有密钥保存在privatekey.txt文件中
FileStream fsPrivate = File.Open(path + "/privatekey.txt", FileMode.Create, FileAccess.Write);
StreamWriter InPrivate = new StreamWriter(fsPrivate, UTF8Encoding.UTF8);
InPrivate.Write(privatekey);
InPrivate.Flush();
InPrivate.Close();
////将公有密钥保存在文件
FileStream fsPublic = File.Open(path + "/publickey.txt", FileMode.Create, FileAccess.Write);
StreamWriter InPublic = new StreamWriter(fsPublic, UTF8Encoding.UTF8);
InPublic.Write(privatekey);
InPublic.Flush();
InPublic.Close();
}
catch (Exception ex)
{
throw new Exception("在产生密钥的时候出现错误!错误提示: \n" + ex.Message);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -