![]() |
1
11
本质上相同,但可能比添加额外字段更优雅:在默认身份验证框架中 Django ,密码散列存储为如下构造的字符串:
hashtype是sha1或md5,salt是一个随机字符串,用于对原始密码加盐,最后是哈希本身。实例值:
|
![]() |
2
6
如果您通过首先使用MD5创建未来的密码,则可以通过在数据库中重新显示MD5字符串来将所有MD5字符串转换为SHA1。检查密码也需要MD5ing,但我认为这不是一个大的打击。 PHP代码(登录): PREV: $login=(md5($password)==$storedmd5passwordhash); 后: $login=(sha1(md5($password))==$storedsha1passwordhash); 也和盐渍一起工作,从 here . |
![]() |
3
3
我想你已经有了最好的可能性。我更喜欢1而不是2,因为一旦设置了sha,MD5就没有用处了。 无法反转MD5,因此您必须等待用户再次进行身份验证以创建新的哈希。 |
![]() |
4
2
不-基本上你必须保持MD5的位置,直到你关心的所有用户都被转换。这就是散列的本质——您没有足够的信息来再次执行转换。 与其他人保持一致的另一种选择是使密码字段有效地自我描述,例如
然后您可以很容易地检测出用于比较的算法,并避免使用两个字段。同样,您将在进行过程中用sha覆盖MD5。 您需要进行初始更新,使所有当前密码都声明为MD5。 |
![]() |
5
0
你的第二个建议对我来说是最好的。这样,频繁的用户在未来将有更安全的体验。 第一个有效的“怪癖模式”是你的代码库,只确保新用户有更好的sha体验。 |
![]() |
6
-1
如果MD5没有加盐,您可以使用解密站点/彩虹表,例如: http://passcracking.com/index.php 获取密码。不过,使用重新编码方法可能更容易。 |
![]() |
7
-4
是的,在将其转换为sha-1之前,您应该首先知道真正的密码。 如果您想从MD5加密字符串中找到真正的密码,可以尝试 md5pass.com |
|
Crass · Java和JavaScript中不同的md5哈希结果 7 年前 |
|
ebann · 在大文件上同时计算MD5和SHA1 7 年前 |
|
mchiappinam · 将sha512转换为md5 8 年前 |
![]() |
lucacerone · 将md5哈希转换为R中的bigint 9 年前 |
![]() |
cgajardo · SQL Server中的MD5索引 9 年前 |
|
Vlad Pandichi · 从数据库读取MD5哈希以允许用户登录 9 年前 |