MD5的加密已經出來很長一段時間了,也不是什麼特別的新技術,寫這篇的用意也有點像是給自己的一個Note,畢竟加密的功能不常用,最多寫成一個Class,未來去呼叫就好,怕自己也會忘記,所以把這個寫下來. 初步的UI設定如下: H 執行是單純加密,而 S alt執行則是跑Salted Hash的動...
MD5 16位加密实例 using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; namespace md5 { class Program { static void Main( string []args) { Console.WriteLine(UserMd5( 8 )); Console.WriteLine(GetMd5Str(...
最近在做项目时遇到导出CSV文件时,因客户方要求导出CSV文件一定要是shift-jis编码的CSV文件,而我们数据库存储时是unicode储存的,所以导出时会有很多?的编码,这是因为: 借住码表来解释: Shift_JIS 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 NUL SOH STX ETX EOT ENQ AC...
概述 事务必须具有原子性、一致性、隔离性和持久性。虽然首字母缩写词容易记忆,但是每个词的含义不是很明显。以下是简要说明。 ● 原子性(Atomicity):原子性可确保要么执行所有更新,要么什么也不发生。由于事务中的原子性保障,开发人员不必编写代码来处理更新成...
概论 多线程在构建大型系统的时候是需要重点关注的一个重要方面,特别是在效率(系统跑得多快?)和性能(系统工作正常?)之间做一个权衡的时候。恰当的使用多线程可以极大的提高系统性能。 什么是线程? 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个...
概述 C#中的委托类似于C或C++中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C++中的函数指针不同,委托是面向对象,而且是类型安全的。 C#中的事件是当...
GC的前世与今生 虽然本文是以.net作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所以不能由程序员自己来管理。但后...
概述 .NET Framework的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库.通常将在CLR的控制下运行的代码称为托管代码(managed code). 但是,在CLR执行编写好的源代码之前,需要编译它们(在C#中或其它语言中).在.NET中,编译分为两个阶段: 1、把源代码编译为...
常规页生命周期阶段 一般来说,页要经历下表概述的各个阶段。除了页生命周期阶段以外,在请求前后还存在应用程序阶段,但是这些阶段并不特定于页。 阶段 说明 页请求 页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的...
反射的定义: 审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。 公共语言运行库(CLR)加载器管理应用程序域,这些域在拥有相同...
因业务查询要把时间转换为格式为01/JAN/2008 这样的,代码处理如下: DateTime.Now().ToString( dd/MMM/yyyy , new System.Globalization.CultureInfo( en-US )) 就是把时间处理为如上这样的一种格式,加入new System.Globalization.CultureInfo(en-US) 是因为中间月份要...
INotifyPropertyChanged 它的作用:向客户端发出某一属性值已更改的通知。 当属性改变时,它可以通知客户端,并进行界面数据更新.而我们不用写很多复杂的代码来更新界面数据,这样可以做到方法简洁而清晰,松耦合和让方法变得更通用.可用的地方太多了:例如上传进度,实时后台...
在业务复杂的应用程序中,有时候会要求一个或者多个任务在一定的时间或者一定的时间间隔内计划进行,比如定时备份或同步数据库,定时发送电子邮件等,我们称之为计划任务。实现计划任务的方法也有很多,可以采用SQLAgent执行存储过程来实现,也可以采用Windows任务调度...
在system.threading 命名空间提供一些使得能进行多线程编程的类和接口,其中线程的创建有以下三种方法:thread、threadpool、timer。下面我就他们的使用方法逐个作一简单介绍。 1. thread 这也许是最复杂的方法,但他提供了对线程的各种灵活控制。首先你必须使用他的...
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简...