《用户权限管理》PPT课件.ppt

上传人:牧羊曲112 文档编号:5554223 上传时间:2023-07-20 格式:PPT 页数:25 大小:300.49KB
返回 下载 相关 举报
《用户权限管理》PPT课件.ppt_第1页
第1页 / 共25页
《用户权限管理》PPT课件.ppt_第2页
第2页 / 共25页
《用户权限管理》PPT课件.ppt_第3页
第3页 / 共25页
《用户权限管理》PPT课件.ppt_第4页
第4页 / 共25页
《用户权限管理》PPT课件.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《《用户权限管理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《用户权限管理》PPT课件.ppt(25页珍藏版)》请在三一办公上搜索。

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

2、、管理(9)考试成绩管理查询(10)、录入(11)、修改(12)用户权限管理查询(13)、管理(14)数据备份 备份(15)、还原(16),-角色权限-,教师资料管理查询(0)、管理(1)学生资料管理查询(2)、管理(3)课程资料管理查询(4)、管理(5)教学任务分配查询(6)、管理(7)教学计划安排查询(8)、管理(9)考试成绩管理查询(10)、录入(11)、修改(12)用户权限管理查询(13)、管理(14)数据备份 备份(15)、还原(16),三个状态,1:允许项 0:可选项-1:禁止项,数据库结构,二、用户密码加密存储,思考:大多数开发人员使用数据库存储密码,如果密码直接以明文的形式存放

3、在数据库中,则系统很不安全。,散列,散列简介散列(Hash)是一种单向算法,一旦数据被转换,将无法再获得其原始值。可以使用散列算法对密码进行加密,然后再将其存储在数据库中。思考:验证用户密码的流程是怎样?,散列,用户输入密码后,可以再次使用散列算法对其进行转换,然后将其与存储在数据库中的散列进行比较。,散列,散列的特点之一是,即使原始数据只发生一个小小的改动,数据的散列也会发生非常大的变化。Rickie 和 Ricky 这两个单词非常相似,但使用散列算法加密后的结果却相差甚远。你可能根本看不出二者之间有什么相似之处。,散列,.NET 开发人员可以使用多种散列算法类。最常用的是 SHA1 和 M

4、D5。下面我们看一下如何为Rickie这样的普通字符串生成散列,使任何人都无法识别它。,(1)使用 SHA1 生成散列,byte bytePassword=null;/创建新的加密服务提供程序对象SHA1 sha1=SHA1.Create();/将原始字符串转换成字节数组,然后计算散列,并返回一个字节数组bytePassword=sha1.ComputeHash(Encoding.Unicode.GetBytes(Rickie);/释放资源sha1.Clear();/返回散列值的Base64 编码字符串 Console.WriteLine(Convert.ToBase64String(byte

5、Password);,如此可见,输入字符串的一个小小变化就会产生完全不同的字符组合。这正是散列算法之所以有效的原因,它使我们很难找到输入字符串的规律,也很难根据加密后的字符弄清楚字符串原来的模样。,(2)使用MD5也可以生成散列,byte bytePassword=null;string tmpPassword=();MD5 md5=MD5.Create();bytePassword=md5.ComputeHash(Encoding.Unicode.GetBytes(tmpPassword);/Releases all resources used by the.md5.Clear();txt

6、Results.Text=Convert.ToBase64String(bytePassword);,思考:,如果两个用户碰巧使用相同的密码,那么散列值将完全相同。如果黑客看到您存储密码的表格,会从中找到规律并明白您很可能使用了常见的词语,然后黑客会开始词典攻击以确定这些密码。,要确保任何两个用户密码的散列值都不相同,一种方法是在加密密码之前,在每个用户的密码中添加一个唯一的值。这个唯一值称为“盐”值(Salt)。思考:在验证密码时,如何得到这个“盐”值。,生成salt值,byte saltValue=new bytesaltLength;RNGCryptoServiceProvider rn

7、g=new RNGCryptoServiceProvider();/用加密型强随机字节填充的数组rng.GetBytes(saltValue);,byte rawSalted=new byteunsaltedPassword.Length+saltValue.Length;unsaltedPassword.CopyTo(rawSalted,0);saltValue.CopyTo(rawSalted,unsaltedPassword.Length);SHA1 sha1=SHA1.Create();byte saltedPassword=sha1.ComputeHash(rawSalted);by

8、te dbPassword=new bytesaltedPassword.Length+saltValue.Length;saltedPassword.CopyTo(dbPassword,0);saltValue.CopyTo(dbPassword,saltedPassword.Length);,password,unsaltedPassword,SHA1,saltValue,rawSalted,SaltedPassword,dbPassword,随机生成,合并,合并,SHA1,20,24,4,20,24,密码生成,密码验证,password,unsaltedPassword,SHA1,saltValue,SaltedPassword,dbPassword,分解,20,24,4,rawSalted,合并,24,SaltedPassword,比较,合并,密码存储格式,在SQL Server 2000中存为binary(24),三、案例:高校教学管理系统,见程序,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号