- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实验三实现口令认证
实验概述
身份认证(EntityAuthentication)也称为实体鉴别,目的是证实一个实体就是所声称的实体。计算机系统中,对各种计算资源(如文件、数据库、应用系统)机密性和完整性的保护,其本质是防止用户对系统进行非授权的访问。在处理授权问题之前,首先需要确认用户的身份。身份认证通常是系统安全保护的第一道防线,是访问控制和责任追究的基础;认证的失败可能导致整个系统的失败。
这里涉及三个概念:认证、授权及审计。
(1)认证:对用户身份的证实。认证能防止攻击者假冒合法用户获取访问权限。
(2)授权:当用户身份被证实后,赋予该用户进行资源访问的权限。
(3)审计:每一个用户都应该为自己所做的操作负责,所以在每个操作后都要留下记录,以便事后核查。
身份认证分为单向认证和相互认证。如果通信的双方只需要一方(声称方)被另一方(验证方)鉴别身份,这样的认证过程是单向认证。在相互认证过程中,通信双方需要互相认证对方的身份。
用户的身份认证过程通常采用三类凭证验证实体身份:用户所知道的信息(如口令、密钥或记忆的图形、图像等),用户持有的物品(如令牌、智能卡或USBKey等),用户独一无二的特征或能力(如指纹、声音、视网膜血管分布图或签字等)。对主机的认证通常可以根据地理位置、IP地址或者硬件地址(MAC地址)、时间、特定场所等作为认证依据。每一种认证方法都存在一些问题,如对口令的认证,敌手可猜测、窃取口令;对用户持有的令牌的认证,敌手可以盗取令牌,用户也可能丢失令牌;至于使用生物特征进行认证,也存在误报和漏报、扰动攻击、用户的认可程度、使用成本和易用性等问题。因此,为提高认证系统的强度,可以使用多个因子的认证方式,如口令加智能卡,这种认证方式称为多因子认证。
此次课外实践将在熟悉认证概念的基础下,使用高级语言实现基于用户名口令的登录程序。
实验内容
技术说明
此次课外实践设计的登录、注册程序采用B/S架构与SSM框架,具有较高的稳定
性与可复用性,前端页面引入LayUI框架简化开发。
程序代码
注册
Controller-控制层
??@PostMapping(/doRegister)
??@ResponseBody
??public?ReturnJson?doRegister(@RequestBody?User?user)?{
????try?{
??????if?(userService.isUsernameExsit(user.getUsername()))?{
????????return?new?ReturnJson(2,?用户已存在!,?0,?);
??????}
??????if?(男.equals(user.getGender()))?{
????????user.setAvatar(http://my.image.bed/avatar-boy.png);
??????}
??????if?(女.equals(user.getGender()))?{
????????user.setAvatar(http://my.image.bed/avatar-girl.png);
??????}
??????userService.register(user);
??????return?new?ReturnJson(0,?注册成功,?0,?);
????}?catch?(Exception?e)?{
??????return?new?ReturnJson(1,?注册失败,?0,?);
????}
??}
Service-业务层
??@Override
??public?void?register(User?user)?{
????user.setPassword(PasswordUtil.bryptPwd(user.getPassword()));
????userMapper.insert(user);
??}
??@Override
??public?Boolean?isUsernameExsit(String?username)?{
????return?userMapper.selectByUsername(username)?!=?null;
??}
Mapper-数据持久层
??select?id=selectByUsername?resultType=com.zyl.User
??????select?*?from?user?where?username?=?#{username}
??/select
??insert?id=insert?useGeneratedKeys=true?keyProperty=id
????insert?into?user(username,password,gen
您可能关注的文档
- 网络空间安全概论 实验11数字水印 基于LSB算法的水印嵌入和提取.pptx
- 网络空间安全概论 实验11数字水印 基于LSB算法的水印嵌入与提取.docx
- 网络空间安全概论 实验11数字水印 基于空间域LSB的数字水印.docx
- 网络空间安全概论 实验11数字水印 基于空间域LSB的数字水印.pdf
- 网络空间安全概论 实验2加密签名 签名.pdf
- 网络空间安全概论 实验4口令破解 l0phtcrack7(爆破管理员密码)使用教程.pdf
- 网络空间安全概论 实验5漏洞扫描 Nmap扫描实验.docx
- 网络空间安全概论 实验5漏洞扫描 nmap使用手册.docx
- 联想企业优势劣势分析报告总结.docx
- 自动化木工机械行业深度分析与战略规划研究报告.docx
文档评论(0)