• 如鹏网.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

  • 相关阅读:
    理解和解决MySQL乱码问题
    搞清字符集和字符编码
    linux下卸载mysql
    mysqldump备份
    mysql 数据类型
    微信对接HIS——微信可查检验结果
    Install Haskell on Ubuntu and CentOS
    php用类生成二维码
    UVA Team Queue
    总有一种正能量触动你的心灵,读刘丁宁的一封信
  • 原文地址:https://www.cnblogs.com/wjs5943283/p/5244553.html
Copyright © 2020-2023  润新知