`

如何实现程序注册认证

XML 
阅读更多

呵呵,实现程序注册认证:



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;
  }

 

1
0
分享到:
评论

相关推荐

    免300认证费小程序认证进件服务商助手SAAS平台 +小程序前端在线上传

    整体测试下来使用无问题,前羰小程序认证通道均正常,使用小程序注册认证功能需要平放平台对接,建立第三方平台,使用微信商户进件功能需要开通微信支付服务商功能。 演示图地址:...

    【最新版】小程序免认证-1.5.4.zip

    免认证功能是指在小程序中,用户可以跳过繁琐的注册和登录流程,直接通过微信账号进行授权登录,提升用户体验,同时简化开发者的身份验证逻辑。 此压缩包中的源码可能包含以下组成部分: 1. **前端代码**:这部分...

    亲测可用 免300认证模块源码 免费快速创建小程序V1.0.7 原版_源码.rar

    - 但这个“免300认证模块”表明它可能提供了一种方法绕过或减免此费用,可能是通过特定的注册流程或者使用特定的认证接口实现的。 - 认证过程中,需要提交企业的营业执照、对公账户信息等,并且要确保信息的真实性...

    基于QT的聊天小程序实现注册登录,传文件

    本项目是基于QT实现的一个简单的聊天小程序,它包含了注册、登录以及文件传输功能,非常适合初学者作为学习和实践的项目。 首先,我们来看看主要的源代码文件: 1. `mainwindow.cpp` 和 `mainwindow.h`:这是主...

    基于C#的Windows应用程序设计认证题目( Microsoft)

    11. **Microsoft认证考试流程**:考生需要知道如何注册考试、考试形式、考试时间限制以及评分标准。 压缩包内的两个PDF文件很可能是模拟试题,包含了理论问题和实践题目,考生可以通过它们来检验自己的知识掌握程度...

    django+python实现的web入门程序-注册登录功能-sqlite3数据库

    【标题】"django+python实现的web入门程序-注册登录功能-sqlite3数据库"是一个基于Python的Django框架和SQLite3数据库构建的初级Web应用程序。这个程序旨在帮助初学者理解如何在Django中实现用户注册和登录的核心...

    java实现的用户登录程序

    在这个“java实现的用户登录程序”中,我们主要会探讨以下几个关键知识点: 1. **Java Servlet与JSP**: Java Servlet是Java为Web服务器开发的接口,用于处理HTTP请求。JSP(JavaServer Pages)是一种动态网页技术...

    Django实现登录-注册等功能

    在本文中,我们将深入探讨如何使用Django框架来实现用户登录和注册功能,这对于任何Web应用程序来说都是核心组件。Django是一个用Python编写的高级Web框架,它鼓励快速开发和简洁实用的设计理念。 首先,我们需要...

    小程序免300认证注册企业小程序账号模块源码 官方渠道 支持支付优惠劵等

    此模块源码声称可以“免300认证”,意味着它可能提供了一种方法,使企业能够在无需支付认证费用的情况下注册并创建小程序账号。 2. **企业小程序账号**:企业小程序账号是针对企业用户的一种特殊类型的小程序账号,...

    基于VS2015与SQL2008的C#源程序,实现用户登陆注册功能示例

    【标题】:“基于VS2015与SQL2008的C#源程序,实现用户登陆注册功能示例”揭示了如何使用Microsoft的Visual Studio 2015开发环境和SQL Server 2008数据库系统来创建一个C#应用程序,这个程序包含了用户注册和登录的...

    Sip注册 Java实现

    在本文中,我们将深入探讨如何使用Java来实现SIP(Session Initiation Protocol)注册过程。SIP是一种应用层控制协议,常用于建立、修改和终止多媒体通信会话,如VoIP电话、视频会议等。Java提供了JSR 289(Java API...

    ASP注册源码方便实现登陆注册

    在ASP技术中,实现用户登录和注册功能是常见的应用场景,这对于任何Web应用程序来说都是基础且重要的部分。以下是对ASP注册源码实现登录注册功能的详细讲解。 1. **ASP基础** ASP使用VBScript或JScript等脚本语言...

    快速创建小程序_免300元认证费【php源码】

    使用PHP编写的小程序,可以避免微信平台的300元认证费用,这可能是通过使用个人开发者账号或者其他方式实现的。而“源码”则表示提供了完整的代码,开发者可以深入了解其工作原理并根据需求进行修改。 压缩包内的...

    基于微信小程序的二手市场系统的设计与实现.docx

    - 微信小程序端:通过微信认证登录,商品展示、搜索、分类导航等功能实现。 - 后台管理端:构建API接口,处理小程序端的数据请求,提供商品管理、订单处理、用户信息管理等功能。 5. 性能与安全 - 性能优化:合理...

    传说OLSQL数据库网页注册程序

    "传说OL SQL数据库网页注册程序"正是这样一种实现方式,它基于SQL Server数据库,为游戏《传说OL》提供了用户注册的功能。本文将深入探讨该注册程序的核心组成部分,以及如何进行配置和使用。 首先,我们来理解注册...

    asp微信小程序(授权登录+微信支付)案例demo

    微信小程序的授权登录是通过微信开放平台实现的,它允许用户使用微信账号快速登录到应用,简化了用户的注册和登录过程。在ASP中,你需要集成微信提供的SDK,调用OAuth2.0授权接口获取用户的OpenID,然后通过这个唯一...

    修复登录接口仿抽奖助手微信小程序源码下载-支持商家认证多种开奖方式

    【抽奖小程序前端】是本次源码的核心部分,它包含了微信小程序用于实现抽奖功能的所有前端代码。微信小程序是一种轻量级的应用开发平台,用户无需下载安装即可使用,特别适合开发如抽奖助手这样的轻应用。 在这款...

    Web实现登录注册功能.rar

    在Web开发中,登录注册功能是每个网站或应用程序的基础组件,它允许用户创建账户并安全地访问个性化内容。本项目采用Mybatis、...通过这个项目,你可以深入理解Web应用的架构、用户认证的实现以及前后端交互的原理。

    springmvc框架的用户登录注册的简单实现

    10. **安全控制**:在实际项目中,登录注册功能通常涉及用户认证和授权,Spring Security 可以用来实现这些功能。 在这个简单的实现中,你可能会看到以下步骤: 1. 用户通过表单提交登录或注册信息。 2. 控制器...

    用C++实现的聊天程序

    【标题】"用C++实现的聊天程序"揭示了这个项目是使用C++编程语言来构建的一个聊天应用。C++是一种强大的、面向对象的编程语言,适用于开发高性能、复杂的应用程序,包括网络通信软件。 【描述】中提到,这个聊天...

Global site tag (gtag.js) - Google Analytics