2 c reator C_reator 于 2014.12.18 17:08 提问

请教一个关于网站用户密码保存的问题

之前自己做过一个简单的网页有登录注册功能的,但是我是直接将用户注册的名字和密码保存在数据库中,换句话说,我可以在数据库里直接看到用户的密码。当然这只是一个个人简单的小demo,但我想问一下,在实际投入运行的网站中,他们是怎样保存用户的密码的?后台人员能够从数据库中看得到用户的密码吗?如果看不到,那比如我们要修改密码的话,后台又是如何判断我输入的密码是否是原来的密码?
求教一下~谢谢~

5个回答

caozhy
caozhy   Ds   Rxr 2014.12.18 17:33

一般来说,我们使用哈希(Hash)算法来存储密码。
其中MD5和SHA是两种常见的Hash算法,你可以通过Hash算法得到一个Hash值,和数据库中存储的比较,并且如果Hash一致,就视作密码正确。但是不能根据Hash算法知道用户输入的密码是什么,这样就保证了安全。

通俗的比喻,Hash好比指纹。你不能从指纹知道这个指纹是谁,但是如果你留存了指纹底根,那么那个人来了可以判断是不是他。

feiyun0112
feiyun0112   Rxr 2014.12.18 17:27

一般是MD5加密

修改密码和登录是一样处理,输入原密码,MD5加密后和数据库比较是否相同

Topc008
Topc008   Rxr 2014.12.18 17:27

密码都是要加密存储的,哪能使用明码呢?后台人员只要有操作数据库的权限就能看到数据库中的所有信息,何况是密码呢?
至于修改密码,一般都需要提供原来的密码,经过相同的方法加密并与数据库中保存的密码比较,相同就允许修改密码,不同就拒绝修改密码.....

u013420821
u013420821   2014.12.18 17:47

一般是用Hash中的md5加密,但要注意md5加密是不可逆的

zilaishuichina
zilaishuichina   Rxr 2014.12.22 10:26

数据库里面存储的密码都是md5之后的字符串,甚至是2次md5的字符串。

判断密码是否相同, 举个例子123, md5之后数据库里面存储的是asdfghjk

用户在页面登陆输入123, 页面传到后台程序的时候,将用户输入的123,md5成asdfghjk,然后和数据库中比较是否匹配,匹配则密码正确

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!