如鹏网.Net三层架构 第三章MD5和NPOI使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如鹏网.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
以上是关于如鹏网.Net三层架构 第三章MD5和NPOI使用的主要内容,如果未能解决你的问题,请参考以下文章