请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于密码问题

老师您好,您的密码加密是在数据库完成的。那么当我写了一个java程序,需要校对用户密码是否输入正确(登录功能),或者新建用户的时候。我该怎么办?
我是否应该在自己的DAO层,写出带有AES_ENCRYPT()的sql,然后封装成数据层的方法自己调用。
那么将意味着跟用户表相关的操作,我没法利用插件,要自己完成DAO层相关部分的开发。

正在回答 回答被采纳积分+3

1回答

神思者 2019-10-18 20:05:03

你说的插件指的是前端页面么?为什么我选择数据库AES加密密码呢?因为用Java去实现AES算法有BUG,windows和Linux系统的AES算法在实现上不兼容。也就是说你要用Java判断系统,然后再选择算法。所以用数据库去实现AES,兼容性更好。

1 回复 有任何疑惑可以回复我~
  • 提问者 LayLowMay #1
    我的意思是,java的连接数据库取数,比如像mybatis-generator,jpa等java插件,可以不需要自己写sql就可以直接将数据库的数据映射称对象。但是如果使用老师您这种数据库加密,就不能直接使用他们的插件,要自己写sql在java的代码里了
    回复 有任何疑惑可以回复我~ 2019-10-19 12:32:22
  • 神思者 回复 提问者 LayLowMay #2
    不要指望所有的操作都可以qbc,这是不可能的。当初hibernate的qbc走到死胡同,不得不弄一个hql语言,所以该用sql还是要用sql的。我的团队里面禁止用qbc,因为要操作数据库集群,qbc生成的sql语句多数没法用,而且效率不高
    回复 有任何疑惑可以回复我~ 2019-10-19 15:25:02
  • 提问者 LayLowMay 回复 神思者 #3
    明白,就是优秀的持久层,应该自己写。哪怕是select这种,因为分页插件做不到这种优化对吧。
    但是如果是很小的系统就可以先用插件qbc进行敏捷开发,一切皆看实际业务对不对?
    回复 有任何疑惑可以回复我~ 2019-10-21 09:45:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信