首页 新闻 会员 周边

关于用户登录密码验证问题

0
悬赏园豆:5 [已解决问题] 解决于 2015-10-25 10:39

本人写一个winform程序,发现密码验证不太清楚。。。

 

1、若是登录时,密码验证。根据“用户名”从数据库查询相关数据,取出“密码”,对比输入和取出的密码是否一致来判断登录是否成功。

2、若是修改密码时,要根据主键查询旧密码是否正确。这个时候是把密码传进数据库还是把密码从数据库取出来比较?

3、(修改密码时)若是把密码从数据库取出来比较,在登录的时候就已经把匹配的密码从数据库取出来了,可以用来对比两次密码是否一致,为什么还要根据主键再次访问数据库呢?

C#
舞在世界的主页 舞在世界 | 初学一级 | 园豆:166
提问于:2015-10-24 17:02
< >
分享
最佳答案
0

这是一个设计方面的问题。用户登录成功后,这登录密码一般是不会进行临时存储的,而在用户使用系统的过程中,随时点击修改密码操作,在这修改密码的操作中同样也是无法获取用户在登录时使用的密码。

登录成功,把密码进行临时存储,有点浪费资源,并且安全性不高、有被垃圾回收的风险。所以在修改密码操作中获取登陆时使用的密码,这个方案不靠谱。

收获园豆:5
lenfon | 菜鸟二级 |园豆:255 | 2015-10-25 10:27

那是不是每次操作密码最好都是从数据库中提取?

舞在世界 | 园豆:166 (初学一级) | 2015-10-25 10:31

@舞在世界: 你觉得哪里安全就在哪里获取,这个根据具体的项目设计来定的。比如密码是存储 在文本文件中,那就直接找对应的文本文件,没法一概而论的

lenfon | 园豆:255 (菜鸟二级) | 2015-10-25 10:38

@殇、凌枫: 好的,谢谢

舞在世界 | 园豆:166 (初学一级) | 2015-10-25 10:39
其他回答(1)
0

2——你修改密码,可以直接根据你的用户名或者主键什么的修改呀?如果你是根据旧密码进行修改的话,那你最好是将你先搜索出数据库中旧密码,进行比较,一样的时候才进行密码修改

3——既然你已经取出了旧密码,那你将输入的旧密码与取出的密码进行比较就是了,一样的时候就进行密码修改呀,你可以不用主键访问数据库,那你就用登录名和密码进行修改就是了

如此低调的男人 | 园豆:842 (小虾三级) | 2015-10-24 18:05

有的视频讲解就是这么做的,感觉多此一举了。不知道是不是出于什么安全的原因

支持(0) 反对(0) 舞在世界 | 园豆:166 (初学一级) | 2015-10-24 18:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册