从 umbraco.cms.businesslogic.member 获取明文密码
Obtain clear password from umbraco.cms.businesslogic.member
我需要给一个umbraco用户(会员)发邮件提醒密码。
我和 umbraco.cms.businesslogic.member.Member class 一起工作:
Member member = Member.GetMemberFromLoginName(userName);
string password = member.Password;
但是当我查看这个密码时,显然是 "coded"(加密)密码,而不是 "clear" 密码..
有没有办法获得 "clear" 密码?
希望不会。
以允许恢复密码的方式存储密码是非常糟糕的做法。
您可以代替 "password reminder" 做的是 "password reset":向他们发送一封带有 link 的电子邮件,允许他们重置密码。受几个小时后过期且只能使用一次的唯一编号保护。
密码在帐户创建期间被散列(并且很可能被加盐)。网站不知道明文密码是什么 - 它只能将用户输入密码框的哈希值(单向密码函数,理论上不可逆)与存储的哈希值进行比较。
"forgot password" 应验证帐户所有者并发送一封重置密码的电子邮件 link。发送明文密码电子邮件是一个巨大的安全违规行为,因为用户经常在多个站点上重复使用他们的密码,并且获得对用户电子邮件的访问权限会暴露可以在数百个不同 websites/systems.
上尝试的密码
我需要给一个umbraco用户(会员)发邮件提醒密码。
我和 umbraco.cms.businesslogic.member.Member class 一起工作:
Member member = Member.GetMemberFromLoginName(userName);
string password = member.Password;
但是当我查看这个密码时,显然是 "coded"(加密)密码,而不是 "clear" 密码..
有没有办法获得 "clear" 密码?
希望不会。
以允许恢复密码的方式存储密码是非常糟糕的做法。
您可以代替 "password reminder" 做的是 "password reset":向他们发送一封带有 link 的电子邮件,允许他们重置密码。受几个小时后过期且只能使用一次的唯一编号保护。
密码在帐户创建期间被散列(并且很可能被加盐)。网站不知道明文密码是什么 - 它只能将用户输入密码框的哈希值(单向密码函数,理论上不可逆)与存储的哈希值进行比较。
"forgot password" 应验证帐户所有者并发送一封重置密码的电子邮件 link。发送明文密码电子邮件是一个巨大的安全违规行为,因为用户经常在多个站点上重复使用他们的密码,并且获得对用户电子邮件的访问权限会暴露可以在数百个不同 websites/systems.
上尝试的密码