呵呵,实现程序注册认证:
register.xml
<?xml version="1.0" encoding="gb2312" ?>
<Root>
<RegisterDate>
2009-08-12
</RegisterDate>
<RegisterType>
0
</RegisterType>
<RegisterDays>
2010-09-09
</RegisterDays>
<RegisterPwd>
AA8567D28A67D5084ECE25C9BFD51E1C
</RegisterPwd>
</Root>
Action
public int getRegister(){
ServletContext context = this.getServlet().getServletContext();
//方法封装
int reg=check(context);
if(reg<=0){
request.setAttribute("showError", "对不起,您的软件没有注册或注册到期!");
return mapping.findForward(Constants.FAILURE);
}
}
public int check(ServletContext context) {
String reg_name = "";
String reg_pwd = "";
String reg_type = "";
String reg_date = "";
String reg_days = "";
int result = 0;
try {
XMLReader reader = new XMLReader();
reader.ReaderXML(context);
reg_name = reader.getElementvalue("Root", "Company").trim();
reg_pwd = reader.getElementvalue("Root", "RegisterPwd").trim();
reg_type = reader.getElementvalue("Root", "RegisterType").trim();
reg_days = reader.getElementvalue("Root", "RegisterDays").trim();
reg_date = reader.getElementvalue("Root", "RegisterDate").trim();
//核心部分
result = checkmac(reg_name, reg_pwd, reg_type, reg_days, reg_date);
} catch (Exception e) {
log.error("读取注册信息失败!");
//e.printStackTrace();
}
return result;
}
public Element ReaderXML(String xmlFile) {
try {
// PatternLayout layout = new PatternLayout("%-5p %d{yyyy-MM-dd HH:mm:ss} [name] %c{2} [line] %L [msg] %m%n");
// ConsoleAppender appender = new ConsoleAppender( layout, "System.err");
// log.addAppender(appender);
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new FileInputStream(xmlFile));
RootElement = doc.getRootElement();
}
catch (IOException ex) {
log.error("XMLReader构造时出现IO错误("+xmlFile+"):" + ex.toString());
}
catch (JDOMException ex1) {
log.error("XMLReader构造时分析XML文件出错("+xmlFile+"):" + ex1.toString());
}
catch (Exception ex) {
log.error("XMLReader构造出错("+xmlFile+"):" + ex.toString());
}
return RootElement;
}
protected int checkmac(String reg_name, String reg_pwd,
String reg_type, String reg_days, String reg_date) {
MD5 md = new MD5();
// getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符串
// 返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的,这里不详述
String distName = md.getMD5ofStr(distictDao.getRegisterName());
String newPwd = md.getMD5ofStr( distName + reg_type + reg_days + reg_date );
if (!newPwd.equals(reg_pwd))
return 0;
String currentDate = getTodayFormDate();
int itype = Integer.parseInt(reg_type);
int idays = -1;
switch (itype) {
case 0:
break;
case 1:
idays = 0;
break;
}
//永久注册
if (idays == 0)
return 1;
//限制注册
if(compareDate(currentDate, reg_days))
return 1;
else
return 0;
}
public static boolean compareDate(String fDate, String sDate) {
int compareResult = 0;
if (datidate(fDate) && datidate(sDate)) {
//split String
String[] dateArry1 = fDate.split("-");
String[] dateArry2 = sDate.split("-");
Calendar cld1 = new GregorianCalendar(Integer.parseInt(dateArry1[0]), Integer.parseInt(dateArry1[1]) - 1, Integer.parseInt(dateArry1[2]));
Calendar cld2 = new GregorianCalendar(Integer.parseInt(dateArry2[0]), Integer.parseInt(dateArry2[1]) - 1, Integer.parseInt(dateArry2[2]));
int subYear = cld1.get(Calendar.YEAR) - cld2.get(Calendar.YEAR);
if (subYear > 0)
compareResult = Math.abs(subYear * 365 - cld2.get(Calendar.DAY_OF_YEAR)) + cld1.get(Calendar.DAY_OF_YEAR);
else if (subYear == 0)
compareResult = cld1.get(Calendar.DAY_OF_YEAR) - cld2.get(Calendar.DAY_OF_YEAR);
else
compareResult = subYear * 365 + cld1.get(Calendar.DAY_OF_YEAR) - cld2.get(Calendar.DAY_OF_YEAR);
} else {
System.out.println("Date format Error!");
}
boolean bResult = false;
if (compareResult < 0)
bResult = true;
return bResult;
}
分享到:
相关推荐
整体测试下来使用无问题,前羰小程序认证通道均正常,使用小程序注册认证功能需要平放平台对接,建立第三方平台,使用微信商户进件功能需要开通微信支付服务商功能。 演示图地址:...
本示例使用两个Demo来演示简单实用的U盘身份安全认证机制,每个U盘都有一个唯一的硬件序列号,对这个序列号进行加密处理,生成合法的注册信息,作为身份识别标志,再通过传统的用户口令认证模式,实现一个完善的安全...
ADO.NET 程序设计2题库ATA认证
如果注册文件解码后与卷序号不一致,就要提醒用户输入注册码,如果对新输入的解码后和重新获取的机器码一致,则通过认证,生成新的注册文件后进入主程序。 库和组件: 1、pyDes用于加密解密 2、base64,用于py
1.去微信公众号注册一个应用号,具体百度,无须认证(要钱的300一次)即可. 2.进入应用号首页--->选择设置-->基本设置--->然后可以看到你的appId 3.工具里新建一个项目,appid填写刚刚获取的 4.工具左侧的3个...
中级实践考试题-注册信息录入,本题主要实现将用户信息从Excel表格中自动录入到注册系统中,并在系统异常时重新尝试录入,具体步骤如下: 1、请打开UiBot Creator,创建名为“注册信息录入”的流程,流程位置为系统...
此代码是我以前的工作日志与用户登记系统中的改进。...在理论上通过阅读《基于一次性口令的身份认证系统的设计与实现》对这个题目的框架有了较好的理解,但是能力上还有些欠缺,精力有限无法完全实现论文内容。
用JSP和JavaBean编写一个对用户进行注册和身份认证的程序,包括如下内容 显示用户登录界面,包括用户名和密码的输入框,以及登录按钮和注册连接 如果用户点击注册按钮,则进入注册界面,要求用户填写注册信息,至少...
- 进入小程序注册页面,按照指引填写相关信息,包括手机号验证、邮箱绑定、账号名称设置等。 - 提交企业或个人的相关法律文件,完成实名认证。 ### 2. 下载开发者工具 - 在微信公众平台的小程序页面下载微信开发者...
编辑首先我们要制作一个微信小程序的话,我们需要现在微信公众平台里边申请一个微信小程序,并且完成小程序认证,然后开通微信支付,完成之后就可以用我们的模版了,我们只有注册之后,添加小程序就可以使用模版了,...
实现在线交易功能,用户可以通过微信小程序进行商品的下单、支付和交付,实现便捷的交易体验。 后端SSM框架: 利用Spring MVC处理用户请求和响应,MyBatis进行数据库操作,保证系统的稳定性和高效性。 设计合理的...
实现用户身份认证功能,保障用户信息的安全性,并提供合适的权限管理,确保作品集的展示和访问受到保护。 提供丰富的业务逻辑处理,包括作品上传管理、评论管理、点赞管理等功能,满足用户的多样化需求。 作品管理与...
之前用小程序做项目,因为后台使用的java开发,一切顺利,但切换成django做RESTful API接口时,在登陆注册时一直出现问题,网上搜索,借助一个网友的回答,找到了一种可行的解决方案,现记录如下。 具体流程 用户...
1. **会员注册与认证**:支持会员在线注册和身份验证,简化入会流程并提升用户体验。 2. **课程预约**:会员可以轻松查看不同健身课程的时间安排,并进行实时预约。 3. **签到系统**:通过小程序内的电子签到系统...
通过以上设计与实现,基于微信小程序的校园二手交易平台为大学生提供了一个安全、便捷的二手商品交易平台,帮助他们更好地进行校园内的物品交换和资源共享。同时,采用SSM框架搭建的后端服务保证了系统的稳定性和可...
yii2-user, 灵活的Yii2用户注册和认证模块 Yii2-user 大多数网络应用程序都提供了一种用户登录。登录或者重新设置自己忘记密码。 你可以使用Yii2-user灵活的用户管理模块来处理常见任务,比如注册。认证和密码检索,...
实现用户身份认证功能,保障用户信息的安全性,并提高交易的可信度。 提供丰富的业务逻辑处理,包括服务发布管理、订单处理、支付处理等功能,满足用户的各类需求。 服务信息管理与推荐系统: 学生可以发布、编辑、...
整合Spring Security实现用户认证和授权功能,确保用户信息的安全性。 利用Spring Data JPA进行数据库操作,包括新闻信息的存储和检索。 新闻管理与推荐系统: 管理员可以发布、编辑、删除新闻资讯,保持新闻内容的...
用户管理:包括用户注册、登录、个人信息管理等功能,方便用户在使用平台时进行身份认证和信息维护。 项目管理:用户可以发布、查看、修改和删除项目信息,实现项目的全生命周期管理。 评论管理:用户可以对项目...
实现用户身份认证功能,保障用户信息的安全性,并提高音乐分享的可信度。 提供丰富的业务逻辑处理,包括音乐上传管理、播放列表管理、用户收藏管理等功能,满足用户的各类需求。 音乐管理与推荐系统: 用户可以上传...