-
没学密码学之前,我用C#做出来的注册窗体是这样的
注册窗体
数据库是这样的
数据库1 -
学了密码学之后,我用C#做出来的注册窗体是这样的
注册窗体
哈哈,其实注册窗体还是一样哒。但是我的数据库就不一般了,往下看↓
数据库2 -
emmm,我猜此刻的你,心情是这样的
image.png
这......这一串混乱的东东到底是个啥?完完全全看不懂啊!!!哈哈哈,看不懂很正常
-
下面我来解释一下那串混乱的,令人头......头大的东西,其本体是这样的
本体
感觉很不可思议对不对?哈哈,其实是用了AES给369加密了。学密码学就是要学以致用的嘛,嘿嘿
-
代码献上
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Security.Cryptography;
namespace test1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
/// <summary>
/// AES 加密
/// </summary>
/// <param name="str">明文(待加密)</param>
/// <param name="key">密钥</param>
/// <returns></returns>
public static string AesEncrypt(string str, string key) //key是加密的密钥
{
if (string.IsNullOrEmpty(str)) return null; //判断待加密的字符串是否为空
Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
RijndaelManaged rm = new RijndaelManaged
{
Key = Encoding.UTF8.GetBytes(key),
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};
ICryptoTransform cTransform = rm.CreateEncryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);//返回密文
}
private void Sure_Click(object sender, EventArgs e) //确认注册
{
string userName = AesEncrypt(account.Text, "12345678876543211234567887654abc");//加密
string userPwd = AesEncrypt(password.Text, "12345678876543211234567887654abc");//加密
string strCon = @"data source=(local);initial catalog=test;integrated security=true";
using (SqlConnection conn = new SqlConnection(strCon))
{
conn.Open();
if (conn.State == ConnectionState.Open)
{
string strCmd = "insert into userTable(userName,userPwd) values('{0}','{1}') ";
strCmd = string.Format(strCmd, userName, userPwd);
SqlCommand cmd = new SqlCommand(strCmd, conn);
int i = cmd.ExecuteNonQuery();
if (i == 1)
{
MessageBox.Show("注册成功!");
Form1 f1 = new Form1();
f1.Show();
this.Close();
}
else
{
MessageBox.Show("注册失败!");
}
}
}
}
private void Quit_Click(object sender, EventArgs e) //取消注册
{
Form1 f1 = new Form1();
f1.Show();
this.Close();
}
}
}
网友评论