从MembershipProvider获取未加密的密码

bar*_*ros -2 c# asp.net telerik

我想获取未加密的用户密码.怎么弄这个?

 public static string GetCurrentUserPassword(string userName)
 {
     MembershipProvider p = (MembershipProvider)Membership.Providers["Default"];
     MembershipUser obj = Membership.GetUser(userName);
    return obj.GetPassword();             
 }  


obj type : [Telerik.Sitefinity.Security.Model.User] = User "user1", Id={59d9813c-f88e-4790-9f19-3145ba8347d1}, Provider="Default"

password : "+HmReh/mzvIIuvYsM7+XdEoeQhI="
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

为什么您希望能够获得未加密的密码?

您认为应该能够使用存储密码的唯一方法是使用它来检查用户输入的密码的有效性.对于单向散列(和类似技术),涉及将相同的转换应用于刚输入的密码(在适当的地方使用相同的盐),并查看是否最终使用相同的散列.

应该存储任何可逆的密码表示.这意味着如果攻击者获得了对您的数据库(以及任何私钥)的访问权限,他们就可以直接访问您的用户密码 - 这基本上是不可接受的.(如果每个人都为他们保护的每个资源使用不同的密码,那就不会那么糟糕,但很多人却没有.)