1.MD5加密
用户在数据库存密码需要进行再加密,这样一个过程叫MD5加密 只要涉及到存用户的密码一定要用MD5加密 MD5密码一般都是16进制的 把一个密码转换成16进制的过程就叫MD5加密 把字符串加密成MD5,这样一个过程是不可逆的。只能把字符串变成MD5值,不能把MD5值变成字符串 但有人模拟过MD5加密的过程,写了一套算法,解密的过程。但不可能和加密一模一样,但一些简单的都可以解出来,如123 但是复杂一点就解密不了
练习加密 123 MD5:202cb962ac59075b964b07152d234b70 shift+alt+f10 命名空间
字节数组---字符串 理论上需要3种方式 1.将字节数组中每个元素按照指定的编码格式解析成字符串 2.直接将数组ToString(); 3.将字节数组中的每个元素ToString();
.ToString("x") 将十进制转换为十六进制
ToString("")里面放东西可以转格式,需要的时候查一下
static void Main(string[] args) { //MD5:202cb962ac59075b964b07152d234b70 //x2 : 202cb962ac59075b964b07152d234b70 //x : 202cb962ac5975b964b7152d234b70 //3244185981728979115075721453575112(十进制)---转换16进制 string s = GetMD5("123"); Console.WriteLine(s); Console.ReadKey(); } public static string GetMD5(string str) { //创建MD5对象 MD5 md5 = MD5.Create(); //开始加密 //需要将字符串转成字符数组 byte[] buffer = Encoding.GetEncoding("GBK").GetBytes(str); //返回一个加密好的字节数组 byte[] MD5Buffer= md5.ComputeHash(buffer); //将字节数组转为字符串 //输出是乱码的原因(编码可以排除掉了) //前四行代码不会出现什么问题 //问题出在下面这行,我们最终要的是16进制 //字节数组---字符串 理论上需要3种方式 //将字节数组中每个元素按照指定的编码格式解析成字符串 //直接将数组ToString();(PASS,因为直接转就是命名空间) //将字节数组中的每个元素ToString(); //return Encoding.GetEncoding("GBK").GetString(MD5Buffer);
//189 275 345 我爱你 (PASS) //189 275 345 189275345
string strNew = ""; for (int i = 0; i < MD5Buffer.Length; i++) { strNew += MD5Buffer[i].ToString("x2"); } return strNew;
2.桌面应用程序 1、winform应用程序是一种智能客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等 asp和asp.net不是一个东西,asp落伍了 winform应用程序学的就是托拉拽 XAML语言是 做winform UI
form1.designer.cs 窗口设计的时候,编译器自动生成代码 form1.resx 资源文件 form1 后台代码 一直在操作的就是form1.cs
2、属性 Name:在后台要获得前台的空间对象,需要使用Name属性 visible:指示一个控件是否可见 enabled:指示一个控件是否可用
3、事件:发生一件事情。 注册事件:双击控件注册的都是控件默认被选中的那个事件。 触发事件:
F4注册事件
4、 在Main函数当中创建的窗体对象,我们称之为这个窗体应用程序的主窗体。 也就意味着,当你将主窗体关闭后,整个应用程序都关闭了。
3. public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { MessageBox.Show("我也爱你哟思密达"); this.Close();//关闭主窗体 }
private void button2_MouseEnter(object sender, EventArgs e) { //给按钮一个新的坐标 //这个按钮活动的最大宽度就是 窗体的宽度减去按钮的宽度 int x = this.ClientSize.Width-button2.Width; int y = this.ClientSize.Height - button2.Height;
Random r = new Random(); //要给按钮一个随机的坐标 button2.Location = new Point(r.Next(0,x+1),r.Next(0,y+1)); }
private void button2_Click(object sender, EventArgs e) { MessageBox.Show("还是被你这个屌丝点到了"); this.Close(); }
5、TextBox控件 WorWrap:指示文本框是否换行。 PassWordChar:让文本框显示一个单一的字符 ScollBars:是否显示滚动条 事件:TextChanged 当文本框中的内容发生改变的时候触发这个事件。
4.Timer abcde bcdea string str="abcde"; str=str.substring(1)+str.substring(0,1);
6、Timer 在指定的时间间隔内做一件指定的事情。
5.简单记事儿本应用程序 1)、在程序加载的时候,取消文本框的自动换行,以及让两个按钮和文本框隐藏 2)、点击登录,判断是否登录成功 3)、自动换行功能 4)、保存文本到指定目录下
7.多选和单选控件 公共控件 checkBox 方形可选 radioButton 圆形可选 容器 GroupBox 多选集合
单选和多选 checked:指示这个控件是否处于选中状态。 默认状况下,在一个窗体中,所有的单选按钮只允许选中一个,可以使用groupbox进行分组 分组后可以多选
8.MDI窗体的设计 1、首先确定一个父窗体 将IsMdiContainer设置为true。 创建子窗体--菜单和工具栏--MenuStrip 2、创建子窗体,并且设置他们的父窗体。 LayoutMdi(MdiLayout.TileHorizontal) 横向排列 LayoutMdi(MdiLayout.TileVertical) 纵向排列
9.PictureBox pictureBox1.Image=Image.FromFile(@"图片路径"); path操作路径的 file操作文件的 Directory操作文件夹的 获取路径 Directory.GetFiles(@"文件夹路径")
//设置图片如何在PictureBox1中显示 pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
|
请发表评论