日期:2014-05-16  浏览次数:20440 次

ASP.NET里如何获得当前计算机的用户登陆密码?
我现在能获得当前计算机的登陆用户名,但是老板要求还要获得当前计算机的密码,用DirectoryEntry只能serpassword和changepassword,不能获得当前计算机的密码,请高手帮忙,多谢!
------解决方案--------------------
按理说程序在任何时候都不能获得用户密码,程序中就不应该有任何记录下用户密码或者可以反推用户密码的数据的逻辑。

Windows更不可能提供这样的功能,因为Windows不是csdn。
------解决方案--------------------
Windows登录密码的Hash存储在一个叫sam的文件中。

注意,是密码的Hash,也就是说,可以通过用户输入的密码,应用某种Hash算法得到Hash,和sam的比较,Windows可以判断是否让你登录。但是,这种Hash算法是不可逆的,不可能反推出用户的密码是什么。

即便用户的计算机遗失,或者别人搞到了sam文件,他也只能穷举Windows密码。事实上有好几款这样的暴力穷举程序,比如著名的LC5:
http://wenku.baidu.com/view/e7b0c4c708a1284ac8504362.html?
http://yttitan.blog.51cto.com/70821/1336496

因此你可以知道了,理论上,就是你让用户整个电脑的数据全部暴露在你面前,你也不可能获得用户的登录密码。