对登录密码加密之后为什么原来的用户名+密码不能登录,用户名+数据库显示的密文却能登录

最近在学java的安全编程,把原来jsp写的注册代码,里面 的密码进行了加密,现在的
情况就是用户名+原密码,显示密码错误,用户名+数据库显示的密文,成功登录。
感觉完全就在多此一举啊,别人进了你的数据库不是还可以用直接用密文登录吗,自己
登录的时候原来的密码不应该,加载进去然后在后头进行加密然后和那个密文进行匹对
吗,反而是直接报错了,还是我编写的代码有问题。。。。图片说明

4个回答

登录的时候查询密码的字段要先用相同的加密方式加密一次再放到语句中

zxjwgw
飘零ii 回复java1996: 注册时间去数据库里面取一下 呗,你没有保存create时间吗
2 年多之前 回复
java1996
java1996 回复飘零ii: 好尴尬,这个加密是和注册时间组合,在登录的时候写加密,注册时间怎么整
2 年多之前 回复
zxjwgw
飘零ii 回复java1996: 那说明你验证查询的时候没加密,你把加密后的密文再加密一次 不可能等于最初的值的。
2 年多之前 回复
java1996
java1996 那为什么我用用户名+数据库显示的密文也能登,那样别人进数据库把密文记录下来,用用户名+密文不也一样可以登录
2 年多之前 回复

大哥,我咋这么无语你,你存进去需要加密,你取出来要不要解密,还是那个加密的包,里面有解密的方法,你调用,把数据库取出来的密码值解一下,拿一个变量接收,你在输出一下变量,看看是不是明码

java1996
java1996 好尴尬,这个加密是和注册时间组合,在登录的时候写加密,注册时间怎么整
2 年多之前 回复
qq_38005982
我本狂儒 回复我本狂儒: 你说对不对,注册时要把密码加密,你如果要从数据库取密码和输入的密码比对,要不把密码加密,要不把注册时的密码解密
2 年多之前 回复
qq_38005982
我本狂儒 回复我本狂儒: 登陆输入之后加了密的密码去和数据库的比较,你是因为登陆的数据没有加密,你想啊拿666和666的加密码去比较,有可能成功么?
2 年多之前 回复
qq_38005982
我本狂儒 你的代码需要改啊!应该注册的密码加密,登陆的时候,你要输入密码吧?把登陆时输入的密码也要加密
2 年多之前 回复

你现在是注册的时候加密放入了数据库,但是你登录的时候密码是没有加密的,所以和数据库是不匹配的,人家拿到你的数据库密码就可以直接登录。

你需要的是 注册:用户名:admin 密码:123456 存到数据库->(假设 asd 654321)

登录: 用户名: admin 密码: 123456 传递到后台,后台在进行一次同样的加密操作 得到->asd 654321 再去和数据库对比

如果别人拿到你的数据库 来登录 用户名:asd 密码:654321 这样传递到后台又进行了一次加密 得到的就是错误的:(假设)dsa 123123
这样是不可能成功登录的

这样子如果人家不知道你的加密方式,是永远不可能拿到数据库就正确登录的

qq_35728177
Tsui丶 回复java1996: 注册的时候一样的加密呀 加密之后直接存到数据库里面
2 年多之前 回复
java1996
java1996 好尴尬,这个加密是和注册时间组合,在登录的时候写加密,注册时间怎么整
2 年多之前 回复

登录的时候把前台传过来的密码加密一下,然后去数据库比对,

另外,在注册和修改密码的时候,也要把前台传过来的密码加密一下,

http://blog.csdn.net/linshutao/article/details/7827633

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问