《用户权限管理》ppt课件

《用户权限管理》ppt课件

ID:40133332

大小:402.87 KB

页数:25页

时间:2019-07-22

《用户权限管理》ppt课件_第1页
《用户权限管理》ppt课件_第2页
《用户权限管理》ppt课件_第3页
《用户权限管理》ppt课件_第4页
《用户权限管理》ppt课件_第5页
资源描述:

《《用户权限管理》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本讲内容权限管理的实现思路.NET框架编程技术Windows应用程序中用户权限管理的实现6主讲:屠添翼案例:高校教学管理系统用户密码加密存储在Windows应用程序中能够完成用户权限管理的设计与开发。教学目标教学重点教学难点盐值和散列多层实体权限管理实现的思路用户密码加密存储一、权限管理的实现思路用户角色权限----角色----管理员——来自教师资料教务人员——来自教师资料教师——来自教师资料学生——来自学生资料----权限----教师资料管理——查询(0)、管理(1)学生资料管理——查询(2)、管理(3)课程资料管理——查询(4)、管理(5

2、)教学任务分配——查询(6)、管理(7)教学计划安排——查询(8)、管理(9)考试成绩管理——查询(10)、录入(11)、修改(12)用户权限管理——查询(13)、管理(14)数据备份——备份(15)、还原(16)----角色权限----教师资料管理——查询(0)、管理(1)学生资料管理——查询(2)、管理(3)课程资料管理——查询(4)、管理(5)教学任务分配——查询(6)、管理(7)教学计划安排——查询(8)、管理(9)考试成绩管理——查询(10)、录入(11)、修改(12)用户权限管理——查询(13)、管理(14)数据备份——备份(15

3、)、还原(16)三个状态1:允许项0:可选项-1:禁止项数据库结构二、用户密码加密存储思考:大多数开发人员使用数据库存储密码,如果密码直接以明文的形式存放在数据库中,则系统很不安全。散列散列简介散列(Hash)是一种单向算法,一旦数据被转换,将无法再获得其原始值。可以使用散列算法对密码进行加密,然后再将其存储在数据库中。思考:验证用户密码的流程是怎样?散列用户输入密码后,可以再次使用散列算法对其进行转换,然后将其与存储在数据库中的散列进行比较。散列散列的特点之一是,即使原始数据只发生一个小小的改动,数据的散列也会发生非常大的变化。Rickie

4、和Ricky这两个单词非常相似,但使用散列算法加密后的结果却相差甚远。你可能根本看不出二者之间有什么相似之处。散列.NET开发人员可以使用多种散列算法类。最常用的是SHA1和MD5。下面我们看一下如何为Rickie这样的普通字符串生成散列,使任何人都无法识别它。(1)使用SHA1生成散列byte[]bytePassword=null;//创建新的加密服务提供程序对象SHA1sha1=SHA1.Create();//将原始字符串转换成字节数组,然后计算散列,并返回一个字节数组bytePassword=sha1.ComputeHash(Encod

5、ing.Unicode.GetBytes("Rickie"));//释放资源sha1.Clear();//返回散列值的Base64编码字符串Console.WriteLine(Convert.ToBase64String(bytePassword));如此可见,输入字符串的一个小小变化就会产生完全不同的字符组合。这正是散列算法之所以有效的原因,它使我们很难找到输入字符串的规律,也很难根据加密后的字符弄清楚字符串原来的模样。(2)使用MD5也可以生成散列byte[]bytePassword=null;stringtmpPassword=txtP

6、assword.Text.Trim();MD5md5=MD5.Create();bytePassword=md5.ComputeHash(Encoding.Unicode.GetBytes(tmpPassword));//ReleasesallresourcesusedbytheSystem.Security.Cryptography.HashAlgorithm.md5.Clear();txtResults.Text=Convert.ToBase64String(bytePassword);思考:如果两个用户碰巧使用相同的密码,那么散列值将完

7、全相同。如果黑客看到您存储密码的表格,会从中找到规律并明白您很可能使用了常见的词语,然后黑客会开始词典攻击以确定这些密码。要确保任何两个用户密码的散列值都不相同,一种方法是在加密密码之前,在每个用户的密码中添加一个唯一的值。这个唯一值称为“盐”值(Salt)。思考:在验证密码时,如何得到这个“盐”值。生成salt值byte[]saltValue=newbyte[saltLength];RNGCryptoServiceProviderrng=newRNGCryptoServiceProvider();//用加密型强随机字节填充的数组rng.Ge

8、tBytes(saltValue);byte[]rawSalted=newbyte[unsaltedPassword.Length+saltValue.Length

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。