MD5加密--项目案例

在项目中最尝使用MD5这种非对称加密的就是用户信息登录了。下面我就以一个简单的登录案例来说明MD5的用法

首先来看几张图:

 用户登录页:需要选择要登录的系统,同时输入用户的用户名和密码,验证码才能进入到后台的主页

 

数据库的管理员的用户名和密码  密码是已经加密好的字段

OK,那么接下里的程序逻辑已经很明确了:

  就是在前台页面输入填写好用户名,密码等各种各样的信息,表单提交给后台,在业务逻辑层查一下redis缓存,或者是查一下数据库有没有就好了,

如果有,则跳转到主页,如果没有,则弹出提示框,提醒用户的用户名或者是密码输入错误。

接下来就是上代码了 从Mapper接口开始写,我是使用逆向工程直接生成的(当然,自己写xml文件也可以,很简单)

@Mapper
public interface ManageUserMapper {
   List<ManageUserModel> selectByExample(ManageUserModelExample example);
}

接下来就是业务逻辑层Business

@Service
public class ManageUserBusiness extends BaseBusiness{
    private static final Logger logger = LoggerFactory.getLogger(ManageUserBusiness.class);

    //用户登录
    public ManageUserModel getUserByUserNameAndPwd(ManageUserModel manageUserModel){
        ManageUserModelExample example = new ManageUserModelExample();
        try {
            example.createCriteria().andUserNameEqualTo(manageUserModel.getUserName())
                                    .andUserPwdEqualTo(MD5Util.encoderPassword(manageUserModel.getUserPwd()))
                                    .andIsDeleteEqualTo(ManageUserEnums.IS_DELETE.NORMAL.get());
        }catch (Exception e){
            logger.info("用户名或者密码错误——>"+manageUserModel.getUserName()+","+manageUserModel.getUserPwd());
        }
        List <ManageUserModel> list = manageUserMapper.selectByExample(example);
        if (list == null || list.isEmpty()) {
            return null;
        } else {
            return list.get(0);
        }
    }
}

然后是控制器

    //用户登录信息查询
    @RequestMapping(value = "/htm/loginManageUser.htm")
    @ResponseBody
    public JsonModel loginManageUser(HttpServletRequest request, HttpSession session){
        JsonModel jsonModel = new JsonModel();
        String userName = request.getParameter("userName");
        String password = request.getParameter("userPwd");

        ManageUserModel manageUserModel = new ManageUserModel();
        manageUserModel.setUserName(userName);
        manageUserModel.setUserPwd(password);
        ManageUserModel model = manageUserBusiness.getUserByUserNameAndPwd(manageUserModel);
        String searchClientId = request.getParameter("searchClientId");

        if(model !=null){
            session.setAttribute("manageuser",model);
            session.setAttribute("searchClientId",searchClientId);
            jsonModel.setStatus(true);
            jsonModel.setMessage("成功");
            jsonModel.setResult(model);
        }else{
            ArrayList <Object> list = new ArrayList <>();
            jsonModel.setStatus(false);
            jsonModel.setMessage("您的权限不够,不能进行访问!");
            return  jsonModel;
        }
        return jsonModel;
    }

ok,测试一下吧,在业务层代码上打一个断点,正确的密码是123,查询经过MD5加密的密码,Alt+F8查看一下变量的值,是不是和数据库的一样,那就说明库中存在该管理信息

再看一下控制器Controller

==============返回到模板页F12在页面打一个断点看一下,if判断条件是true,说明下一步的跳转是可以执行的======================

到此,MD5加密登录演示完成!

原文地址:https://www.cnblogs.com/yxllovetm/p/10357584.html

时间: 2024-10-07 16:43:14

MD5加密--项目案例的相关文章

Android之简单加密–MD5 加密

在Android中需要对各种数据进行加密的操作,比如用户短信备份的数据加密.用户账户登陆的密码加密以及应用于服务器连接传递重要数据的加密,用处非常的多这里介绍一下MD5加密: 案例驱动: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class MD5Utils {      // 进行md5的加密运算      public static String encode(Strin

MD5加密案例

MD5加密案例 最近在做权限有关的案例,需要用到MD5加密技术,所以在此拿出来分享一下: 下面这块代码不仅包括MD5加密,还有SHA1加密技术: public class MD5Utils { public static String getMD5(String comeString) { String s = null; char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', '

项目实践——MD5加密

在项目中,需要用MD5进行加密,这里分享一个MD5加密类. MD5加密类: public class Md5 { private static String DEFAULT_JCE = "com.sun.crypto.provider.SunJCE"; private static String IBM_JCE = "com.ibm.crypto.provider.IBMJCE"; protected static final Log log = LogFactor

记录新项目中遇到的技术及自己忘记的技术点【DES加密解密,MD5加密,字符串压缩、解压,字符串截取等操作】

一.DES加密.解密 #region DES加密解密 /// <summary> /// 进行DES加密 /// </summary> /// <param name="pToEncrypt">要加密的字符串</param> /// <param name="sKey">密钥,必须为8位</param> /// <returns>以Base64格式返回的加密字符串</retur

iOS,一行代码进行RSA、DES 、AES、MD5加密、解密

最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才行的,服务器也会返回数据,服务器是用Java开发的,客户端要同时支持多平台(Android.iOS),在处理iOS的数据加密的时候遇到了一些问题.起初采取的方案是DES加密,老大说DES加密是对称的,网络抓包加上反编译可能会被破解,故采取RSA方式加密.RSA加密时需要公钥和私钥,客户端保存公钥加密数据,服务器保存私钥解密数据.(iOS端公钥加密私钥解密.java端公钥加密私钥解密,java端私钥加密公钥解密都容易做到,iOS不

4、C#进阶:MD5加密、进程、线程、GDI+、XML、委托

MD5加密 将字符串进行加密,无法解密.网上的解密方式也都是在库里找,找不到也没有. 1 protected void Page_Load(object sender, EventArgs e) 2 { 3 string s = "123"; 4 Response.Write(getMd5(s)); 5 } 6 public string getMd5(string str) 7 { 8 MD5 md5 = MD5.Create();//MD5抽象类无法实例化 实例化该方法 9 byt

使用MD5加密的登陆demo

最近接手了之前的一个项目,在看里面登陆模块的时候,遇到了一堆问题.现在记录下来. 这个登陆模块的逻辑是这样的 1 首先在登陆之前,调用后台的UserLoginAction类的getRandomKey方法产生一个随机字符串. 2 在前台获得用户名的登陆密码后,首先是要md5对其加密,之后把加密的结果与之前的随机字符串合并,使用md5再次加密,并把最后的结果作为用户的密码传给后台. 3 后台获得前台的用户名后(用户名全局唯一),先找出这个用户的密码(数据库里的真实密码),先用md5加密,再与第一步产

关于CryptoJS中md5加密以及aes加密的随笔

最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用.经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准.2

.net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密

写项目时,后台一直用md5加密,一天群里人问,除了MD5还有其它的加密方法吗?当时只知道还有个SHA,但怎么实现什么的都不清楚,于是当网上找了下,把几种常见的加密方法都整理了下,用winform写了个程序,如图: 关键代码 using System.Security;using System.Security.Cryptography;using System.Web;using System.IO; //MD5 不区分大小写的        //type 类型,16位还是32位,16位就是取3