发表于: 2017-12-07 21:34:32
1 955
今天完成的事情:
- 1.使用DES对用户ID和登录时间加密
明天计划的事情:生成Token,放入Cookie中,拦截器里通过Cookie中判断Token的有效性来判断用户是否登录。
遇到的问题:加密这块不明白为什么我idea加密后的数据插到数据库里变了
收获:
des是什么?
此算法是对称加密算法体系中的代表,在计算机网络系统中广泛使用。
先建一个用户登陆表,应该包含用户名,密码,登陆时间
新建实体类,接口实现类等
我的mapper.xml用user实体类作为参数,方便jsp页面传值
login页面,姓名和密码输入框的name和实体类对应,在控制器中即能自动传入
这里判断用户名密码是否正确,由于之前用过前端ajax的方式做过查询数据,这次用后端的方法,熟悉一下
https://www.cnblogs.com/SHANKS-log/p/5031758.html
变成乱码了
乱码解决方法合集
http://blog.csdn.net/kalision/article/details/46441081/
在web.xml添加配置请求过滤器
添加一个登录失败提示
当用户名或密码错误,控制器返回modelandview添加一个错误提示
jsp
成功页面
再添加一个注册页面,在mapper.xml添加对应sql语句
...
登录注册页面
当我点击登录,他却自动去注册,不知为何,打断点调试
w
我的type是登录,他却并没有走到登录的条件块里,而是走到else里,很费解
然后我改成else if,发现明明type是登录,他却走到最后的else模块
后来想应该是堆栈的问题,百度看这篇文章懂了
https://www.cnblogs.com/zhmt/archive/2011/09/12/2174210.html
==比较的是两者的内存地址,equals比较的是两者的值,而字符串是引用类型,他所存放的是数据内存地址
没问题了
然后是md5和des加密
http://z2009zxiaolong.iteye.com/blog/1562197
先照着这个写一个测试类
这么看来似乎DES是可逆的,而MD5不能。如果不能解密,那加密后该怎么查询?
加盐加密:
使用DES对用户ID和登录时间加密,看到师兄日报密码用md5加密了,我也这么做
在用户注册里弄
之前的登录时间在sql里是bigint类型,要改成varchar,在idea里是long类型,要改成String
配置好后,把user表数据清除,重新注册
报错我转成des的name太长了
改成longtext后,我发现在idea加密后的数据和插入到数据库中的数据不一样了
蓦然回首,我加密了两次。。应该把下面的加密去掉
修改后又报错
我一步一步调试,蓦然回首,发现原来问题在这里
user是jsp页面传过来的,他只包含用户名和密码,这里我应该用userCheck,他通过getUserCountByNameAndPassowrd查询,得到id,userName,userPassword等所有数据
登陆成功,登陆时间改变
今天就到这,准备一下小课堂
禅道:http://task.ptteng.com/zentao/project-task-467.html
评论