- 浏览: 91584 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (148)
- 全文检索 (1)
- java (29)
- xml (2)
- json (2)
- redis springmvc (1)
- Redis (5)
- 开发常识 (1)
- tomcat (2)
- 单元测试Junit (2)
- 设计模式 (2)
- spring (10)
- jvm (2)
- eclipse (4)
- echart (1)
- mybatis (1)
- mysql (3)
- web (1)
- js (2)
- PL/SQL (2)
- 其他 (1)
- 人生 (1)
- 安全 (2)
- jsp (2)
- 硬件电脑 (1)
- linux (3)
- git (10)
- oracle (8)
- ant (1)
- maven (2)
- 正则表达式 (2)
- chrome (1)
- 面试 (6)
- 多线程 (19)
- bug (11)
- java工具类 (3)
- 算法 (1)
- bug,git (1)
- shell (2)
- springmvc (2)
- Java8 (1)
- 消息队列-rocketmq (1)
- es (1)
- dubbo (0)
- spring cloud (0)
- hashmap (0)
- springboot (1)
- velocity (0)
登录相关功能点与用户名密码加密规则实现
- 博客分类:
- java
1.登录 忘记密码
2.成本中心的 查询 编辑 增加
3.后台的角色与权限控制 查询 编辑 增加
4.城市控件
5.oracle数据库 PL/SQL 数据操作
登录 相关功能点:
用户名、密码、记住密码、忘记密码、类型、验证码、下次自动登录、登录按钮、取消按钮
版权、注册、天蓝色基调、居中、左右、上下、重置、帮助、英文界面、前台、后台
使用以下账号直接登录(QQ、微博、微信、淘宝、支付宝等)管理用户、匿名用户、会员登录
注销、认证方式、头像、小键盘输入、拖拽登入、刷新输入、获取动态验证码、系统设置、刷新
版本升级、logo、语言、主题、验证码 看不清换一张、十天内免登录、与微信好友玩、与QQ好友玩、已阅读并同意<<用户协议>>、游戏、办公、选区、cookie、各行各业、上次登录、验证码类型:静态 带背景静态 含算式的 动态手机号、防暴力破解输入出错5次 账号被锁定、密码js中传值MD5加密
零碎知识点
1、去空格
trim()函数,replace()函数,split("").join("")函数
2、清空
reset()函数,关键字 reset换个函数名
3、鼠标移入移出
mouseenter()、mouseleave()
$(this).find(div).stop(false,true).slidedown();
$(this).find(div).stoop(false,true).hide();
4.密码的控制
不能全为数字,全英
插件 js文件passwordStrength.js
*****************jsp 页面中的设置************************************
/**
* 密码校验
*
*/
2.成本中心的 查询 编辑 增加
3.后台的角色与权限控制 查询 编辑 增加
4.城市控件
5.oracle数据库 PL/SQL 数据操作
登录 相关功能点:
用户名、密码、记住密码、忘记密码、类型、验证码、下次自动登录、登录按钮、取消按钮
版权、注册、天蓝色基调、居中、左右、上下、重置、帮助、英文界面、前台、后台
使用以下账号直接登录(QQ、微博、微信、淘宝、支付宝等)管理用户、匿名用户、会员登录
注销、认证方式、头像、小键盘输入、拖拽登入、刷新输入、获取动态验证码、系统设置、刷新
版本升级、logo、语言、主题、验证码 看不清换一张、十天内免登录、与微信好友玩、与QQ好友玩、已阅读并同意<<用户协议>>、游戏、办公、选区、cookie、各行各业、上次登录、验证码类型:静态 带背景静态 含算式的 动态手机号、防暴力破解输入出错5次 账号被锁定、密码js中传值MD5加密
零碎知识点
1、去空格
trim()函数,replace()函数,split("").join("")函数
2、清空
reset()函数,关键字 reset换个函数名
3、鼠标移入移出
mouseenter()、mouseleave()
$(this).find(div).stop(false,true).slidedown();
$(this).find(div).stoop(false,true).hide();
4.密码的控制
不能全为数字,全英
插件 js文件passwordStrength.js
(function(){ if(!window['EBWF']){ window['EBWF'] = {}; } function passwordStrength(password){ // Private properties var defaultLength = 8; var owner = this; // Private method function initCheck(password){ if(!password||password.length <8){ throw new Error(emptyandlength+defaultLength); } } function min(a,b,c){ if(a>b){ if(b>c){ return c; }else{ return b; } }else{ if(a>c){ return c; }else{ return a; } } } function getDistance(a, b){ var aL = a.length; var bL = b.length; var distance = new Array(aL+1); for(var i = 0; i <= aL; i++){ distance[i] = new Array(bL+1); } for(var i = 0; i <= aL; i++){ distance[i][0]=i; } for(var j=0;j<=bL;j++){ distance[0][j] =j; } for(var i =1 ; i <= aL;i++){ for(var j=1;j<=bL;j++){ var ac = a.charAt(i-1); var bc = b.charAt(j-1); if(ac==bc){ distance[i][j]= distance[i-1][j-1]; }else{ var v1 = distance[i][j-1]; var v2 = distance[i-1][j-1]; var v3 = distance[i-1][j]; distance[i][j]= min(v1,v2,v3)+1; } } } return distance[aL][bL]; } initCheck(password); this.password = password; // Priviledged method (still public) this.setPassword = function(password){ initCheck(password); this.password = password; }; this.isSimilar=function(target,limitStep){ var i = getDistance(target,this.password); if(i<=limitStep){ return true; }else{ return false; } }; } passwordStrength.prototype.equalsIgnoreCase = function(target){ return this.password.toUpperCase()==target.toUpperCase(); }; passwordStrength.prototype.evaluateLength = function(min, max){ if(this.password.length< min||this.password.length>max){ return false; }else{ return true; } }; passwordStrength.prototype.atLeastLength = function(length){ if(this.password.length < length){ return false; }else{ return true; } }; passwordStrength.prototype.isAllCharacters= function(){ var allCharacters =/^([a-zA-Z])+$/; if(allCharacters.test(this.password)){ return true; }else{ return false; } }; passwordStrength.prototype.isAllLowerCharacters= function(){ var allLowerCharacters =/^([a-z])+$/; if(allLowerCharacters.test(this.password)){ return true; }else{ return false; } }; passwordStrength.prototype.isAllUpperCharacters= function(){ var allUpperCharacters =/^([A-Z])+$/; if(allUpperCharacters.test(this.password)){ return true; }else{ return false; } }; passwordStrength.prototype.isAllDigits= function(){ var allDigits =/^([0-9])+$/; if(allDigits.test(this.password)){ return true; }else{ return false; } }; passwordStrength.prototype.hasThreeConsecutiveSame= function(){ var length = this.password.length; for(var i=0;i<length-2;){ var c1= this.password.charAt(i); var c2= this.password.charAt(i+1); var c3= this.password.charAt(i+2); if(c3!=c2){ i=i+2; }else if(c1!=c2){ i=i+1; }else{ return true; } } return false; }; passwordStrength.prototype.hasSpecialCharacter= function(){ var length = this.password.length; //Character a = '0'; for(var i=0; i< length; i++){ var c = this.password.charAt(i); var rv = ((c-'A')>-1&&(c-'z')<1)||((c-'0')>-1 && (c-'9')<1); if(!rv){ return true; } } return false; }; passwordStrength.prototype.hasThreeConsecutiveValue= function(){ var length = this.password.length; for(var i=0;i<length-2;){ var c2= this.password.charAt(i+1); if((c2>'0'&&c2<'9')||(c2>'a'&&c2<'z')||(c2>'A'&&c2<'Z')){ var c1= this.password.charAt(i); var c3= this.password.charAt(i+2); if((c2*2 == c1+c3)&&(c2!=c1)){ return true; }else if((c2==c3-1)||(c2==c3+1)){ i=i+1; }else{ i=i+1; } }else{ i = i+2; } } return false; }; passwordStrength.prototype.basicEvaluate= function(length){ if(!this.atLeastLength(length)){ return false; }else if(this.isAllCharacters()){ return false; }else if(this.isAllDigits()){ return false; }else if(this.hasThreeConsecutiveSame()){ return false; }else{ return true; } }; window['EBWF']['passwordStrength'] = passwordStrength; })();
*****************jsp 页面中的设置************************************
/**
* 密码校验
*
*/
function resetPwdCheck() { var new_pwd = jQuery.trim(jQuery("#new_pwd").val()); var confim_pwd = jQuery.trim(jQuery("#confim_pwd").val()); if(new_pwd == ""){ alert(please_fillin_password); /*"请填写密码"*/ return false; } if (confim_pwd == "") { alert(please_confirm_password); /*"请确认密码"*/ return false; } if (new_pwd != confim_pwd) { alert(inputpassword_consistent); /*"两次填写的密码不一致"*/ return false; } if(new_pwd != "" && validateCharLength(new_pwd) > 50){ alert(newpassword_toolong); /*"新密码过长"*/ return false; } //管理员密码复杂度校验 var passwordStrengthConstructor = window['EBWF']['passwordStrength']; try{ var password = new passwordStrengthConstructor(new_pwd); if (password.isAllDigits()==true){ alert(password_cannot_numbers); /*"密码不能全部为数字"*/ return false; } if (password.isAllCharacters()==true){ alert(password_cannotallletter); /*"密码不能全部为字母"*/ return false; } }catch(e){ alert(e.message); return false; } return true; }
发表评论
-
linux 文件 dos unix格式,unix和dos下文本文件得区别
2023-09-06 23:23 153问题: 当在window ... -
java 枚举values()方法
2019-07-30 20:41 415工作中,同事 ... -
newHashMapWithExpectedSize
2019-07-30 19:45 1280newHashMapWithExpectedSize VS ... -
java 8 stream应用
2019-07-15 11:43 01.生成map List<BusinessFacili ... -
技术知识点汇总
2019-02-12 15:47 01. LTS(light-task-scheduler) ... -
架构演进
2018-12-21 00:54 369一传统垂直mvc项目 垂直架构图:表示层->业务逻辑层- ... -
集群中session共享
2018-12-20 23:25 0当项目演进时,一个节点出错,如何保证域名能访问到别的节点。 一 ... -
父类子类静态代码块执行
2018-08-22 15:23 0先看一个基础面试题: package com.jbx.te ... -
数组元素的初始化
2018-07-10 17:16 492直接上代码 ,char的初始化值是'\u0000' p ... -
统计一个字符串中每个字符串出现的次数
2018-07-03 17:43 600经常遇到这个问题:总结一下 思路和代码 import ja ... -
DateUtil
2018-03-15 20:53 494记录一下常用的工具类,方便使用的时候可以获取。 pack ... -
indexOf判断一个字符串是否包含另一个字符串
2018-02-26 08:58 511jdk中的表述如下 indexOf public int in ... -
eclipse 添加反编译
2018-01-25 08:57 321为eclipse中*.clsas/*.class withou ... -
Java读取配置文件
2018-01-24 16:00 310Java读取配置文件test.properties 文件tes ... -
HTTP请求头
2017-12-29 16:49 0Request Headers 当访问一个action时,在谷 ... -
阿里巴巴Java开发手册(终极版)
2017-11-13 16:37 484前言 《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队 ... -
JavaEE 基础实用教程(二)------Jsp应用基础
2017-11-03 17:22 658习题 1.画出HTML文件的基 ... -
JavaEE 基础实用教程(一)---简述
2017-11-03 14:55 592第一部分 实用教程 第 ... -
实现普通用户登录
2017-11-03 11:09 0页面元素: 用户名,密码,验证码,登录 1.创建登录页 ... -
Java容器-- 99集
2017-10-26 14:21 0API接口 Collection Set List H ...
相关推荐
在前端开发中,JavaScript(JS)是实现用户交互和数据验证的重要工具,特别是在登录功能的实现上。本文将深入探讨如何使用JavaScript来判断用户名和密码,以实现一个基本的登录系统。 首先,我们需要理解HTML(超...
本压缩包包含了一些关于Android平台上的登录注册功能的实现,尤其是条件判断、用户名和密码的验证、登录后跳转到主页面以及记住密码和自动登录的机制。以下是这些关键知识点的详细解释: 1. **条件判断**:在登录...
在本文中,我们将深入探讨如何在Apache Kafka中配置SASL/PLAIN认证机制,并通过具体的密码验证实现安全的通信。Kafka是一个分布式流处理平台,它在数据传输中扮演着重要角色,而安全性是其核心考量之一。SASL...
本实验聚焦于使用wincap工具来捕获并分析登录FTP时的用户名和密码信息,以验证其正确性。wincap是一个强大的网络封包分析软件,它允许我们深入查看网络通信的底层细节。 首先,我们要理解FTP的工作机制。FTP基于TCP...
本文将深入探讨这个主题,并基于提供的“C++用户名+密码登录程序”来解析关键知识点。 首先,我们要了解C++语言的基础。C++是一种强大的、面向对象的编程语言,具有丰富的库支持和高度的性能。它被广泛用于系统软件...
通过上述步骤,你已经成功地在Spring Security中实现了自定义的密码加密方式和认证结果处理。在实际项目中,你可能还需要关注其他方面,比如权限控制、记住我功能、CSRF保护等。Spring Security提供了一系列的API和...
在"VB20081204-登录密码"这个文件中,很可能是包含了上述知识点的VB6.0源代码实现。通过阅读和分析这个源代码,可以进一步理解密码登录程序的实现细节,并提升编程技能。如果你需要深入学习,可以结合相关教程和文档...
需要注意的是,这里的用户名和密码看起来并不符合常见的命名规则,可能是因为它们是特定场景下的示例或者是经过某种加密处理的结果。在实际应用中,建议使用更易于记忆且符合安全规范的用户名和密码组合。 ### 使用...
在LabVIEW编程环境中,"密码登录系统VI"是一种常见的应用,用于实现用户验证和权限管理。这个系统允许用户通过输入正确的凭证(通常是用户名和密码)来访问受保护的功能或数据。下面将详细介绍密码登录系统的基本...
在实际应用中,可能还需要考虑其他功能,如错误检查(确保用户名和密码非空)、密码复杂性规则、记住密码选项等。此外,密码的存储和验证应遵循安全最佳实践,避免明文存储,而是使用加密技术。 在提供的`...
最后,压缩包中的"DMT48270C043-t5UId14.3寸密码登录与改写os-20180731"文件可能是该设计的具体实现,包含了针对特定屏幕尺寸和分辨率的界面布局和相关代码。这份代码库可能包含了上述所有功能的实现细节,可供开发...
9. **错误处理和验证**:在注册和登录过程中,程序需要进行各种验证,如检查用户名是否已存在,密码是否符合规则等。遇到错误时,程序应该返回适当的错误消息。 10. **安全实践**:除了密码加密,安全实践还包括...
此外,保存生成的用户名和密码列表时,应选择加密保存,以防止未经授权的访问。 通过以上步骤,你可以利用WPS Office 2021快速生成一组基于特定规则的用户名和密码,极大地提高了工作效率。这种技巧在需要批量创建...
批量生成用户名密码的原理通常基于一定的规则或算法。例如,它可能基于用户提供的前缀、数字序列、日期等元素,通过组合生成一系列唯一的用户名和相应的密码。工具可能会提供定制选项,如设置用户名长度、是否包含...
在安卓应用开发中,"安卓app——实现登录注册" 是一个基础且重要的功能模块,它涉及到用户的身份验证和用户体验的设计。下面将详细讲解这个过程中的关键知识点。 首先,登录注册功能通常由两个主要部分组成:登录...
这通常需要在后端进行更复杂的验证,并对敏感数据如密码进行加密存储。 6. 用户体验: - 界面设计应简洁易用,错误提示明确,以提升用户体验。此外,注册时可能需要验证码防止机器人,登录时可能提供“记住我”...
标题提到的“linux实现vnc无密码登录”就是针对这种需求的一种解决方案,特别是通过修改turbo VNC的源代码来实现。 Turbo VNC是一款优化过的VNC服务器,它在保持低延迟的同时提供更好的性能。在标准的VNC设置中,...
在本文中,我们将深入探讨如何使用uniapp与unicloud云开发平台实现登录功能。uniapp是一个跨平台的前端开发框架,它允许开发者用一套代码编写应用,同时支持iOS、Android、H5、小程序等多个平台。unicloud是阿里云...
在提供的文件名中,`MD5Util.java`很可能是实现MD5加密功能的工具类,它可能包含了MD5加密的逻辑,包括自定义规则的部分。`AESUtil.java`可能包含AES(Advanced Encryption Standard)加密的实现,尽管AES是另一种...
标题提及的是一种基于Java实现的密码不可逆加密算法,该算法设计用于保护用户的密码安全,尤其是在网络服务中,用户在注册后通常需要提供用户名、密码等个人信息。密码的加密存储至关重要,因为一旦加密过程不可逆,...