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;

C#基础笔记(第十四天)的更多相关文章

  1. Python基础笔记系列十四:python无缝调用c程序

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺 ...

  2. Java基础笔记(十四)——封装

    封装(好比ATM机) 将类的某些信息隐藏在类内部,不允许外部程序直接访问(隐藏对象的信息),通过该类提供的方法来实现对隐藏信息的操作和访问(留出访问的接口). 特点: 1.只能通过规定的方法访问数据. ...

  3. Android基础笔记(十四)- 内容提供者读取联系人

    利用内容提供者读取联系人 利用内容提供者插入联系人 内容观察者的原理 利用内容观察者监听系统应用数据库或者自己应用数据库的变化 利用内容提供者读取联系人 读取联系人相对于读取短信来说就复杂非常多了,我 ...

  4. JavaScript基础笔记(十四)最佳实践

    最佳实践 一)松散耦合 1.解耦HTML/JavaScript: 1)避免html种使用js 2)避免js种创建html 2.解耦CSS/JS 操作类 3.解耦应用逻辑和事件处理 以下是要牢记的应用和 ...

  5. Java基础笔记(十四)——面向对象(续)【构造方法和this关键字】

    一.构造函数的规则 1.构造方法是用来在对象实例化时初始化对象的成员变量的,以完成对象的初始化工作. 2.构造方法与类名相同且没有返回值(返回值也不能为void型).如:public 构造方法名( ) ...

  6. Java_jdbc 基础笔记之十四 数据库连接(元数据)数据库信息及连接信息

    public class MetaDatatest { /** * DatabaseMetaData 是描述 数据库的元数据对象 可以由Connection得到 */ @Test public voi ...

  7. VSTO学习笔记(十四)Excel数据透视表与PowerPivot

    原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...

  8. Python学习笔记(十四)

    Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...

  9. MyBatis基础入门《十四》ResultMap子元素(association )

    MyBatis基础入门<十四>ResultMap子元素(association ) 1. id: >> 一般对应数据库中改行的主键ID,设置此项可以提高Mybatis的性能 2 ...

随机推荐

  1. Windows10 家庭版添加【本地组策略编辑器】

    Windows10 家庭版默认没有[本地组策略编辑器],添加方法: 新建记事本复制以下内容 @echo off pushd "%~dp0" dir /b C:\Windows\se ...

  2. netcore 发布 到 windows server IIS 可能会报错

    当发布netcore 到windows server iis可能会报这种错:An error occurred while starting the application 不要慌,这个时候可能是你用 ...

  3. Commons FileUpload文件上传组件

    Java实现的文件上传组件有好几种,其中最为“官方”的要数Apache Commons库中的FileUpload了吧. 页面 <form method="POST" enct ...

  4. redis惊群

    本文链接:http://www.cnblogs.com/zhenghongxin/p/8681168.html 什么是惊群 首先,我们使用缓存的主要目的就是为了高并发情况下的高可用,换句话说,在使用了 ...

  5. MySQL 高级查询操作

    目录 MySQL 高级查询操作 一.预告 二.简单查询 三.显示筛选 四.存储过程 五.查询语句 1.作为变量 2.函数调用 3.写入数据表 备注 附表一 附表二 相关文献 博客提示 MySQL 高级 ...

  6. Tomcat启动内存设置

    Tomcat启动内存设置 Tomcat的启动分为startupo.bat启动和注册为windows服务的启动,下面一一说明. 1.startup.bat启动 在tomcat_home/bin目录下找到 ...

  7. 深入理解Java接口和抽象类

    对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用, ...

  8. cobbler koan自动重装系统

    介绍 koan是kickstart-over-a-network的缩写,它是cobbler的客户端帮助程序,koan允许你通过网络提供虚拟机,也允许你重装已经存在的客户端.当运行时,koan会从远端的 ...

  9. Vue.js系列之一初识Vue

    在看vue.js之前,可以先看这两篇文章,对于为什么要使用vue会有一定帮助 1.Vue.js !important 2.界面之下:还原真实的MV*模式 !important 3.web前端优化之re ...

  10. Vue的实时时间转换Demo

    Vue的实时时间转换Demo time.html: <!DOCTYPE html> <html lang="en"> <head> <me ...