本帖最后由 加菲喵 于 2015-9-10 16:27 编辑
移动端登录密码加密
1.描述
文档中的关于权限加密的部分是针对整个项目工程的即pc端与移动端保持一致的,但是有些系统因为重点是使用移动端的,虽然密码是加密的,但是pc端可以通过复制,但在移动端如果这样登录的话会很花时间,所以如果可以做到移动端密码加密后台进行,是十分的便利的。
2.准备工作
需要捕捉到移动端登录的前提下获取用户名和密码,并且对密码做加密处理,废话少说,直接代码。
package com.fr;
import com.fr.stable.CodeUtils;
import com.fr.stable.StringUtils;
import com.fr.web.utils.WebUtils;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Created by pan on 2015/7/17.
*/
public class mobileFilter implements Filter{
public String CASPATH = "";
public void init(FilterConfig filterConfig)throws ServletException{
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException{
HttpServletRequest req = (HttpServletRequest)servletRequest;
HttpServletResponse res = (HttpServletResponse)servletResponse;
String op = WebUtils.getHTTPRequestParameter(req,"op");
String cmd = WebUtils.getHTTPRequestParameter(req,"cmd");
/*移动端访问判断*/
if ((StringUtils.equalsIgnore(op,"fs_mobile_main","")) && (StringUtils.equalsIgnore(cmd,"login",""))){
System.out.println("移动端登录");
String passWord = WebUtils.getHTTPRequestParameter(req,"fr_password");
System.out.println("明文密码是:"+passWord);
/*调用自带的md5加密的方式*/
passWord = CodeUtils.md5Encode(passWord,null,"MD5");
System.out.println("密文密码是:"+passWord);
RequestWrapper newWrapper = new RequestWrapper(req,passWord);
filterChain.doFilter(newWrapper,res);
}else {
filterChain.doFilter(req,res);
}
}
public void destroy(){
}
}ps:我这边使用的是我们系统自带的MD5加密方式,具体的加密方式按照自己需求处理即可。同样,需要在web.xml部分加一个filter
<filter>
<filter-name>mobile</filter-name>
<filter-class>com.fr.mobileFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>mobile</filter-name>
<url-pattern>/ReportServer</url-pattern>
</filter-mapping>
大概操作流程如下:
|