MD5对我的密码字符串做了什么?

kam*_*001 7 .net md5

我设置了密码"13579"并且身份验证模式将其转换为MD5,如"mEXg8klnq0TwPFvAqytULA ==",但经过几分钟后,我再次尝试使用相同的密码"13579"创建另一个,但它转换为不同的密码,如"uM4gH8HO8cvoE0slg6OyKA =="MD5的结构是什么?它与我的用户名和时间有关吗?我想为我的用户创建相同的密码,因此如果它取决于时间我就无法创建相同的密码.

Jak*_*cki 9

您的密码由ASP.NET成员资格提供程序加密 - 查看您的数据库,Users表中将包含一个包含salt的列.Provider为每个用户生成salt并将其存储在表中.然后使用此salt加密密码.由于每个用户具有不同的盐值,因此加密时明文中的相同密码将不同.

您可能希望在没有salting的情况下使用提供程序 - 尝试使用Google搜索"ASP.NET成员资格提供程序无盐",但您最终可能会继承自己的提供程序.我不认为web.config中的提供程序设置有一个选项可以关闭salting.


Fal*_*con 6

MD5是一种确定性算法,因此您可能正在经历"盐渍哈希".这意味着,某些字符串或其他数据(例如时间戳)在密码中被编码为"salt"以加强它.

在数据库中查找名为salt的数据库列,检查密码的md5结果,并附加创建日期时间戳以查找salt.