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. 发起一个NetCore技术联盟促进NetCore技术应用

    一.简介 1.从十几年前开始net,到两年前转java,到去年底发现netcore2这玩艺,从此以后坚定成为netcore的追随着. 2.有心促进netcore的应用,聚集一些人员共同学习,减少技术使 ...

  2. 【CronExpression表达式详解和案例】(转载)

    原文地址:https://www.cnblogs.com/pipi-changing/p/5697481.html   找了下Cron的资料,这篇作者写的比较清晰,转载记录一下,方便后面使用的时候在g ...

  3. 配置国内的maven仓库

    MAVEN中央仓库 国内 配置Maven中央仓库路径的方法如下: 在Maven文件的conf目录中打开settings.xml文件 在文件中的servers节点和mirror节点中加入如下内容 华为云 ...

  4. Redis的Pub/Sub机制存在的问题以及解决方案

    Redis的Pub/Sub机制使用非常简单的方式实现了观察者模式,但是在使用过程中我们发现,它仅仅是实现了发布订阅机制,但是很多的场景没有考虑到.例如一下的几种场景: 1.数据可靠性无法保证 一个re ...

  5. 【wireshark】插件开发(三):Lua插件 Dissector

    // TODO: 部分内容需要修改 1. 骨架 首先新建一个文件,命名为foo.lua,注意此文件的编码方式不能是带BOM的UTF8,否则wireshark加载它时会出错(不识别BOM): -- @b ...

  6. [Python] 模拟登录网站(。。为了之后操作数据。。)

    我司的内部管理(Web)系统(日报)着实..(mafan).. 所以,就想自己动手增加一下便利性. 计划是, - 桌面程序 用来方便记录(按自己格式,数据随时保存到sqlite中,备用) 通过一览来确 ...

  7. centos7修改默认运行级别的变化

    在学习centos7,视频教学中使用的的centos6,查看权限文件命令为 cat /etc/inittab/ 但是在centos7中输入以下命令会出现这种情况 这个已经不用了,现在修改权限的命令修改 ...

  8. Java_使用日志

    日志有什么用? 在实际开发中,不可能使用控制台输出所有数据,可以用日志把程序运行的过程记录下来,包括运行中出现的异常和BUG 当出现问题的时候,程序员可以去查看日志,从而能快速的找到问题所在. 一般来 ...

  9. OS之内存管理 ---基本的内存管理策略(二)

    分段 基本方法 分段就是基于用户视图的内存管理方案.逻辑地址空间是由一组段构成的,每个段都有名称和长度.地址指定了段名称和段内偏移.因此用户通过两个量来指定地址:段名称和段偏移. 为了简单,进行对段的 ...

  10. 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类

    目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) ---------------------------------------分割线----------- ...