如鹏网.Net三层架构 第三章MD5和NPOI使用

该章内容:

该章节中主要讲解MD5和NPOI使用,

在项目中如何使用两种技术.

----------------------------------------------------------------------------------------

MD5算法:是一种散列(hash)算法(摘要算法,指纹算法),不是一种纯压缩算法,不是一种

加密算法(易错)。任意长度的任意内容都可以用MD5计算出散列值。

MD5长度一般是32位16进制数字字符串,Md5值的个数是有限的,但是源数据是无限的,

因此存着不同内容产生相同md5值的概率,因为Md5算法不可逆,即使得到内容对应的Md5的值,

无法由Md5值反推内容。但是对不同的内容产生相同md5值的概率非常非常低。

password字段保存用户输入密码的md5值,这样系统管理员、黑客也不知道用户密码是什么,

也避免了用户的其他系统密码被利用的问题。

判断正确性的方法 :计算用户输入的密码的MD5值,与数据库中存储的md5值进行比较,如果

相等则认为密码正确。

常见应用:计算文件的Md5值来检验文件是否被篡改过。

网站的密码只能被重置,不能找回原来密码。

---------------------------------------------------------------------------------------------

md5算法理论上是不可逆的。

为了更安全:算两次MD5值,或加上一个固定的字符串。

和Md5类似的还有Sha等算法。

---------------------------------------------------------------------------------

NPOI读取Excel文件

一个Excel文件-》Workbook有很多页-》Sheet,

每页里面有很多行-》Row,每行有很多单元格-》Cell

看起来像数字的字符串以半角单引号开头就没问题了。

添加引用;

            using (Stream fs = new FileStream("myexcel.xls", FileMode.Open, FileAccess.Read))
            {
                //创建工作表
                IWorkbook workbook = new HSSFWorkbook(fs);
                //获取页
                var sheet = workbook.GetSheetAt(0);
                //遍历行
                for (var i = 0; i <= sheet.LastRowNum; i++)
                {
                    var row = sheet.GetRow(i);
                    //遍历单元格
                    var sb = new StringBuilder();
                    for (var j = 0; j < row.LastCellNum; j++)
                    {
                        var cell = row.GetCell(j);
                        if (cell.CellType == CellType.Numeric)
                        {
                            sb.Append(cell.NumericCellValue + "   "); //单元格的数据
                        }
                        if (cell.CellType == CellType.String)
                        {
                            sb.Append(cell.StringCellValue + "   "); //单元格的数据
                        }
                    } //End for j
                    Console.WriteLine(sb.ToString());
                } //End for i

                Console.WriteLine(sheet.SheetName);
                Console.ReadKey();
            } //End using

如鹏网:http://www.rupeng.com

时间: 2024-12-20 04:30:04

如鹏网.Net三层架构 第三章MD5和NPOI使用的相关文章

如鹏网.Net三层架构 第四章代码生成器

介绍商业及代码生成器,如何自己手写代码生成器 SELECT * from information_schema.`TABLES` WHERE TABLE_TYPE='base Table' and `ENGINE`='InnoDb' and TABLE_SCHEMA='rpcaterdb' SELECT * from information_schema.`COLUMNS` where TABLE_NAME='t_orders' 1. 完全手写采用三层架构(不借助于代码生成器)编写一个学生的增删

如鹏网.Net三层架构第一章三层基础

三层架构: 1.通常意义上的三层架构就是将整个业务应用划分为:表现层.业务逻辑层.数据访问层.区分层次的目的即为了“高内聚低耦合”的思想. 2.该课程中通过讲解餐饮管理系统来让大家理解三层之间的关系. 3.课程中会带着大家分析数据库如何设计.软件开发的几个阶段.MD5的使用. NPOI组件如何读写Excel文件.单例模式创建窗体.三层如何搭建.三层之间的关系.手写三层等. 希望大家学会该项目后能理解三层的精髓. ------------------------------------------

如鹏网.Net三层架构第二章登录和会员管理

讲解餐饮项目中登录功能和会员管理功能 -------------------------------------------------------------------------------------------- 三层项目: 关系型数据   C#类数据 表名          类名 列名 字段封装成属性 三层  各个功能分开 登录窗口点登录->调用BLL方法->调用DAL方法->数据库 数据库->DAL->BLL->UI -------------------

如鹏网 静态Web开发 第五章:JQuery

课前说明 参考书:<锋利的jQuery> jQuery官网:http://jquery.com jQuery在线API:http://api.jquery.com http://api.jquery.com/api/ (xml文件.) jQuery UI:http://jqueryui.com/ ------------------------------------------- 常见的JavaScript框架库 什么是JavaScript框架库? 普通JavaScript的缺点:每种控件的

如鹏网 静态Web开发 第四章:JSDom

本章主干知识点: 1.<a onclick="f1()"/> document.getElementById("btn1").onclick=function(){} 2.setInterval.setTimeout 3.事件冒泡以及如何阻止事件冒泡: 4.如何动态创建元素和动态添加元素: 5.innerText和innerHTML区别 6.案例:动态加载数据到table中: ---------------------------------------

PowerBuilder编程新思维3:适配(三层架构与GraphQL)

PowerBuilder编程新思维3:适配(三层架构与GraphQL) PB在富客户端时代,是一线开发工具.随着网络发展,主流架构演进到三层架构的时代,PB拿不出有力的三层架构,已经明显力不从心,市场份额也江河日下.今天我们来细数一下PB的三层架构方式及其改进方法. PB三层架构方式一:EAServer 这是PB官方首推的三层架构,但是用三句可以总结,无感的体验,无奈的价格,无语的速度. 事实上除了EAServer这个选择,可以自己开发服务端,比如topwiz公司的PBNIServ 使用BPNI

从头开始做一个OA项目(三) 关于三层架构思想

下面就开始一步一步的搭建我们的项目三层架构,自从微软的PetShop推出以来,似乎它就成了三层的代名词.在国内.Net界几乎所有的项目都是根据PetShop来搭建三层架构,甚至我还见过一些项目直接就把它的架构拷贝过来,一丝未改.直接使用.在搭建之前,为了便于还未接触过三层的同学了解.我们先把三层架构的基本概念解释一下.我们先来思考一个场景.我们大家都去过饭店吃饭,那么大家回忆一下我们吃饭的流程是个什么样子呢?如下图所示. 当我们推开饭店的大门,马上就会迎来一个笑容可掬的服务员,她会忙着招待我们,

企业级应用框架(三)三层架构之数据访问层的改进以及测试DOM的发布

在上一篇我们在宏观概要上对DAL层进行了封装与抽象.我们的目的主要有两个:第一,解除BLL层对DAL层的依赖,这一点我们通过定义接口做到了:第二,使我们的DAL层能够支持一切数据访问技术,如Ado.net,EF,linq To Sql,这一点我们实现的不是很完美,仍有很大的改进空间,本文将加以改进. 在此之前我们来看一下我们最新的dom(PS:经过两天的赶工,我们的dom已经相对成熟,其中BLL层已经被我高度抽象化了,并且引进了业务上文文的概念:DAL层除了具体的技术实现尚为完成,其他方面已经相

简单的web三层架构系统【第三版】

今天是第三版,和前几天一样今天还是要对代码进行优化,三层架构是一种思想,具体能不能使得整个系统安全和高性能,还是要看代码编写的是否合理,逻辑性是否严谨. 昨天偶然间看到别人写的三层架构中,竟然没有在方法中传递单个参数,而是直接声明了一个对象整体的当传参.最后上网查,发现原来是在系统里多加了一层,叫做模型层,就是用来在系统的各层之间传递数据的,这样就避免了为一个方法传递多个参数现象. 具体深入的模型层使用还在学习当中,今天就用学到的一点简单的模型层知识,对代码进行再一次优化. 首相先建立一个模型层