![]() |
1
31
当然可以。只需在现有哈希中添加一个盐,然后再次进行哈希。当然,这将需要将来的任何登录经历相同的过程,这意味着需要调用两个哈希函数,但无论如何,许多合法的模式都会这样做,因此闻起来不像您想象的那么糟。 加盐密码是一种防御彩虹表的努力。在这种情况下,盐不需要是秘密。 http://en.wikipedia.org/wiki/Rainbow_tables#Defense_against_rainbow_tables 你可以在文章中看到
这和你将使用的方法是一样的。(除了一个不同的哈希函数。) |
![]() |
2
14
作为一个快速修复方法,您可以在数据库中创建salt列,当用户正确登录到与旧哈希匹配的哈希时,您可以使用他们用salt输入的密码并创建一个新的哈希。 |
![]() |
3
2
您可以添加一列,该列由一个标志组成,该标志显示用户是否具有 古老的 (没有盐)或 新的 (加盐)土豆泥。 此时,一个好主意是强制所有用户在登录时更改密码。这样你最终可以摆脱那个专栏。 |
![]() |
4
1
我处理了一个涉及多个哈希技术的类似问题。我也使用了在数据库中编码散列方法类型的方法(即“alpha”、“beta”、“gamma”、“delta”)。我用适当的级别标记了所有当前哈希。当用户登录时,我验证了他们的密码,并使用更新的方法重新散列。我们的密码将在90天后过期,所以只需保留3个月,直到所有使用旧方法的密码都可以重置。 |
![]() |
5
0
有
some ways here
这可能对你有用。
当然,最好的方法是迁移到一个咸哈希表。 |
![]() |
6
0
在数据库中创建一个名为“salted”的新字段,其类型为true/false(或DBMS中的等效字段)。将现有哈希的所有值设置为false。每当添加一个新的加盐散列时,将“加盐”字段设置为true。 然后,您所要做的就是在代码中以不同的方式处理这两种类型的哈希。 这更像是一个通用的解决方案,而不是一个特定的解决方案,但它应该能解决您的问题。 |
![]() |
7
0
如果您将盐存储在散列中,那么应该相当直接地通过检查散列的长度来确定是否包含盐。如果没有盐,只需散列密码,如果有盐,散列密码+盐。 在数据库中不需要布尔列。 |
![]() |
8
0
存储salt的最佳方法是将salt值嵌入到刚刚创建的密码hash+salt中。我不将salt字符串附加到哈希的开头或结尾,而是直接将salt嵌入哈希中。 |
![]() |
Racine Pilote · Laravel回滚特定数据库 6 年前 |
![]() |
Arti · Django rerun迁移操作 6 年前 |
![]() |
Black-Prince · 用于迁移两个不同数据库上的两个表的脚本 6 年前 |
![]() |
Tutu Kaeen · 在Laravel中回滚模块迁移? 6 年前 |
![]() |
ProgLover · 如何修改迁移并在不丢失数据的情况下进行迁移? 6 年前 |
![]() |
Askold Ilvento · 在Eigen中应用逆换位 6 年前 |