返回方法一:
package util; /** * @author 作者姓名 * @version 创建时间:2015-2-25 下午03:29:40 * 类说明 */ public class CheckStrong { public static Safelevel GetPwdSecurityLevel(String pPasswordStr) { Safelevel safelevel = Safelevel.VERY_WEAK; if (pPasswordStr == null) { return safelevel; } int grade = 0; int index = 0; char[] pPsdChars = pPasswordStr.toCharArray(); int numIndex = 0; int sLetterIndex = 0; int lLetterIndex = 0; int symbolIndex = 0; for (char pPsdChar : pPsdChars) { int ascll = pPsdChar; /* * 数字 48-57 A-Z 65 - 90 a-z 97 - 122 !"#$%&'()*+,-./ (ASCII码:33~47) * :;<=>?@ (ASCII码:58~64) [\]^_` (ASCII码:91~96) {|}~ * (ASCII码:123~126) */ if (ascll >= 48 && ascll <= 57) { numIndex++; } else if (ascll >= 65 && ascll <= 90) { lLetterIndex++; } else if (ascll >= 97 && ascll <= 122) { sLetterIndex++; } else if ((ascll >= 33 && ascll <= 47) || (ascll >= 58 && ascll <= 64) || (ascll >= 91 && ascll <= 96) || (ascll >= 123 && ascll <= 126)) { symbolIndex++; } } /* * 一、密码长度: 5 分: 小于等于 4 个字符 10 分: 5 到 7 字符 25 分: 大于等于 8 个字符 */ if (pPsdChars.length <= 4) { index = 5; } else if (pPsdChars.length <= 7) { index = 10; } else { index = 25; } grade += index; /* * 二、字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混合字母 */ if (lLetterIndex == 0 && sLetterIndex == 0) { index = 0; } else if (lLetterIndex != 0 && sLetterIndex != 0) { index = 20; } else { index = 10; } grade += index; /* * 三、数字: 0 分: 没有数字 10 分: 1 个数字 20 分: 大于 1 个数字 */ if (numIndex == 0) { index = 0; } else if (numIndex == 1) { index = 10; } else { index = 20; } grade += index; /* * 四、符号: 0 分: 没有符号 10 分: 1 个符号 25 分: 大于 1 个符号 */ if (symbolIndex == 0) { index = 0; } else if (symbolIndex == 1) { index = 10; } else { index = 25; } grade += index; /* * 五、奖励: 2 分: 字母和数字 3 分: 字母、数字和符号 5 分: 大小写字母、数字和符号 */ if ((sLetterIndex != 0 || lLetterIndex != 0) && numIndex != 0) { index = 2; } else if ((sLetterIndex != 0 || lLetterIndex != 0) && numIndex != 0 && symbolIndex != 0) { index = 3; } else if (sLetterIndex != 0 && lLetterIndex != 0 && numIndex != 0 && symbolIndex != 0) { index = 5; } grade += index; /* * 最后的评分标准: >= 90: 非常安全 >= 80: 安全(Secure) >= 70: 非常强 >= 60: 强(Strong) >= * 50: 一般(Average) >= 25: 弱(Weak) >= 0: 非常弱 */ if(grade >=90){ safelevel = Safelevel.VERY_SECURE; }else if(grade >= 80){ safelevel = Safelevel.SECURE; }else if(grade >= 70){ safelevel = Safelevel.VERY_STRONG; }else if(grade >= 60){ safelevel = Safelevel.STRONG; }else if(grade >= 50){ safelevel = Safelevel.AVERAGE; }else if(grade >= 25){ safelevel = Safelevel.WEAK; }else if(grade >= 0){ safelevel = Safelevel.VERY_WEAK; } return safelevel; } public enum Safelevel { VERY_WEAK, /* 非常弱 */ WEAK, /* 弱 */ AVERAGE, /* 一般 */ STRONG, /* 强 */ VERY_STRONG, /* 非常强 */ SECURE, /* 安全 */ VERY_SECURE /* 非常安全 */ } public static void main(String[] args) { Safelevel safelevel = GetPwdSecurityLevel("ssssss"); System.out.println(safelevel); } }
返回方法二:
package util; /** * @author 作者姓名 * @version 创建时间:2015-2-25 下午03:29:40 * 类说明 */ public class CheckStrong { static final String VERY_WEAK="非常弱"; static final String WEAK="弱"; static final String AVERAGE=" 一般"; static final String STRONG="强"; static final String VERY_STRONG="非常强"; static final String SECURE="安全"; static final String VERY_SECURE="非常安全"; public static String GetPwdSecurityLevel(String pPasswordStr) { String safelevel = VERY_WEAK; if (pPasswordStr == null) { return safelevel; } int grade = 0; int index = 0; char[] pPsdChars = pPasswordStr.toCharArray(); int numIndex = 0; int sLetterIndex = 0; int lLetterIndex = 0; int symbolIndex = 0; for (char pPsdChar : pPsdChars) { int ascll = pPsdChar; /* * 数字 48-57 A-Z 65 - 90 a-z 97 - 122 !"#$%&'()*+,-./ (ASCII码:33~47) * :;<=>?@ (ASCII码:58~64) [\]^_` (ASCII码:91~96) {|}~ * (ASCII码:123~126) */ if (ascll >= 48 && ascll <= 57) { numIndex++; } else if (ascll >= 65 && ascll <= 90) { lLetterIndex++; } else if (ascll >= 97 && ascll <= 122) { sLetterIndex++; } else if ((ascll >= 33 && ascll <= 47) || (ascll >= 58 && ascll <= 64) || (ascll >= 91 && ascll <= 96) || (ascll >= 123 && ascll <= 126)) { symbolIndex++; } } /* * 一、密码长度: 5 分: 小于等于 4 个字符 10 分: 5 到 7 字符 25 分: 大于等于 8 个字符 */ if (pPsdChars.length <= 4) { index = 5; } else if (pPsdChars.length <= 7) { index = 10; } else { index = 25; } grade += index; /* * 二、字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混合字母 */ if (lLetterIndex == 0 && sLetterIndex == 0) { index = 0; } else if (lLetterIndex != 0 && sLetterIndex != 0) { index = 20; } else { index = 10; } grade += index; /* * 三、数字: 0 分: 没有数字 10 分: 1 个数字 20 分: 大于 1 个数字 */ if (numIndex == 0) { index = 0; } else if (numIndex == 1) { index = 10; } else { index = 20; } grade += index; /* * 四、符号: 0 分: 没有符号 10 分: 1 个符号 25 分: 大于 1 个符号 */ if (symbolIndex == 0) { index = 0; } else if (symbolIndex == 1) { index = 10; } else { index = 25; } grade += index; /* * 五、奖励: 2 分: 字母和数字 3 分: 字母、数字和符号 5 分: 大小写字母、数字和符号 */ if ((sLetterIndex != 0 || lLetterIndex != 0) && numIndex != 0) { index = 2; } else if ((sLetterIndex != 0 || lLetterIndex != 0) && numIndex != 0 && symbolIndex != 0) { index = 3; } else if (sLetterIndex != 0 && lLetterIndex != 0 && numIndex != 0 && symbolIndex != 0) { index = 5; } grade += index; /* * 最后的评分标准: >= 90: 非常安全 >= 80: 安全(Secure) >= 70: 非常强 >= 60: 强(Strong) >= * 50: 一般(Average) >= 25: 弱(Weak) >= 0: 非常弱 */ if(grade >=90){ safelevel = VERY_SECURE; }else if(grade >= 80){ safelevel = SECURE; }else if(grade >= 70){ safelevel = VERY_STRONG; }else if(grade >= 60){ safelevel = STRONG; }else if(grade >= 50){ safelevel = AVERAGE; }else if(grade >= 25){ safelevel = WEAK; }else if(grade >= 0){ safelevel = VERY_WEAK; } return safelevel; } public static void main(String[] args) { String safelevel = GetPwdSecurityLevel("WERxxeeEerre34343_2322E3E45r$%&&"); System.out.println(safelevel); } }
相关推荐
因此,还需要额外的策略,如使用密码强度检测库,或者结合黑名单策略来避免这些常见弱密码。 在Web应用开发中,例如"WebApplication2"这样的项目,可以利用前端验证(如JavaScript)和后端验证(如服务器端语言如...
4. 密码管理功能:为了保障用户账户的安全,系统应该有安全的密码策略,包括密码强度检测、密码修改和找回等功能。这可能涉及到加密算法,如MD5或SHA,以及用户认证机制。 5. Java技术:作为后台开发语言,Java以其...
+ 密码具有足够的强度:口令长度至少 8 位且应由数字、字母(区分大小写)和特殊字符组成。 + 密码定期更新:应定期提示用户更换口令。 + 密码分级使用:安全等级不同的系统间,同一个体的账户不应使用相同的口令...
5. **表单验证**:登录页面通常包含用户名和密码输入框,为了保证数据的准确性和安全性,模板可能会集成简单的表单验证功能,如非空检查、密码强度检测等,这可以通过JavaScript进行实现。 6. **安全考虑**:登录...
在JSP页面上,需要设置密码强度检测和确认密码一致性的校验,同时在后台实现密码加密存储,防止数据泄露。 系统的后台管理功能则是管理员用来维护用户信息、设置权限、处理异常交易等。管理员可以通过专门的JSP管理...
2. 提交的请求被Servlet捕获,Servlet调用JavaBean的方法,对用户输入的数据进行合法性检查,如非空验证、密码强度检测等。 3. 如果验证通过,JavaBean将用户信息保存到数据库或其他持久化存储中。 4. Servlet将处理...
密码修改功能通常会结合密码强度检测,确保用户设置的密码具有一定的复杂度,增加账户的安全性。 三、用户注册与删除 用户注册需提供必要的个人信息,如姓名、联系方式等,并设置登录密码。系统会进行数据校验,...
- 系统应有密码强度检测,确保用户的密码安全性。 3. **添加项目**: - 项目创建者能提交项目提案,包括项目简介、目标金额、众筹期限、回报设置等,需通过后台审核后发布。 - 系统需对输入内容进行合法性检查,...
同时,使用jQuery可以实现表单验证,如非空检查、密码强度检测等,提高数据安全性。 在交互设计上,登录界面往往还包括错误提示和成功反馈。当用户输入无效信息时,可以使用jQuery实时检测并显示错误信息,如红色的...
在用户登录和注册场景中,JavaScript可以用于前端验证,如检查输入是否为空、格式是否正确,甚至可以实现简单的密码强度检测,防止用户提交无效或不安全的数据。同时,JavaScript也可以用来实现异步提交,比如AJAX,...
用户注册时,前端界面会进行必要的数据校验,如邮箱格式检查、密码强度检测等。登录过程则涉及到session或cookie的使用,来跟踪用户的登录状态。 基本信息的增删改查功能,通常基于MVC(Model-View-Controller)...
在《我的智囊团(SSH)_02_开发用户注册功能.pdf》和《我的智囊团(SSH)_03_开发用户登录功能.pdf》中,详细阐述了用户模块的实现,包括用户注册时的信息验证,如邮箱格式检查、密码强度检测等,以及登录时的身份...
- 账户安全:系统应有防止恶意攻击和数据泄露的安全机制,如二次验证、密码强度检测等。 2. 图书库存管理: - 数据库设计:书籍信息存储在数据库中,包括书名、作者、出版社、ISBN、库存数量等。 - 分类与搜索:...
1. **表单验证**:在用户填写表单时,无需提交就能实时验证输入的有效性,如邮箱格式检查、密码强度检测等。 2. **动态加载内容**:页面的部分区域(如新闻滚动、推荐商品)在用户不刷新页面的情况下更新内容。 3. *...
可能包括邮箱验证、密码强度检测等功能,以确保用户账户的安全。用户还可以对自己的信息进行修改,如密码重置、收货地址管理等。 ### 6. 商品管理 后台管理系统应包含商品上传、分类管理、库存控制等功能。商家...
针对传统农家乐信息管理中存在的诸多问题,如信息管理混乱、错误率高、安全性不足、劳动强度大以及耗时费力等,本文旨在设计并实现一个基于Spring Boot框架的数字化农家乐管理平台。该平台利用Java语言在Eclipse开发...
- **Direct 环境光线传感器**:检测环境光线强度,自动调节屏幕亮度; - **Smali**:一种用于 Android Dalvik 字节码的汇编语言,常用于反编译 APK 文件; - **Intent**:用于启动 Activity 或 Service,传递数据的...
- **Password Strength** - 密码强度指示器。 - **inputMask** - 输入掩码,用于格式化输入。 - **InputText** - 单行文本输入框。 - **InputTextarea** - 多行文本输入框。 - **Watermark** - 输入框中的提示...