问题标签 [salt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 有人可以指出一个好的 PHP/MySQL 加盐哈希密码实现吗?
在阅读了有关 salts 密码哈希的信息后,我想为我正在构建的站点的管理区域实现一个简单的版本。
如果您有任何很好的代码链接可以很好地实现这个想法,如果您能分享,我将不胜感激。
谢谢,
security - 我需要每个密码一次“随机盐”还是每个数据库只需要一次?
除了我之前关于 PHP/MySQL 中的加盐密码的问题之外,我还有另一个关于盐的问题。
当有人说“使用随机盐”来预先/附加到密码时,这是否意味着:
- 创建一个静态的 1 次随机生成的字符串,或者
- 创建每次创建密码时随机更改的字符串?
如果盐对每个用户都是随机的,并与散列密码一起存储,那么如何检索原始盐以进行验证?
security - 最佳密码盐长度
可能重复:
用户密码盐的最佳长度是多少?
我试图在 Stack Overflow 上找到这个问题的答案,但没有成功。
假设我使用 SHA-1 哈希存储密码(所以它是 160 位),假设 SHA-1 对我的应用程序来说已经足够了。用于生成密码哈希的盐应该多长时间?
我发现的唯一答案是,让它比散列本身(在这种情况下为 160 位)更长,这听起来合乎逻辑,但我应该让它长那么长吗?例如,Ubuntu 使用 SHA-512 的 8 字节盐(我猜),那么 8 字节对于 SHA-1 是否也足够了,或者可能太多了?
php - PHP 安全登录脚本 - md5 哈希与我在之前脚本中写入数据库的哈希不匹配?
我正在尝试将 PHP 中的登录脚本拼凑成一个学习项目。
这是用户注册时我的数据库写入的代码。这两个值都写入数据库。
登录后,将触发以下功能。
不幸的是,在单步执行我的代码时,这两个值从未相等。有人可以帮我理解为什么吗?
c# - 如何在 C# Windows 窗体应用程序中轻松加盐密码?
如何轻松地从 Textbox.Text 中添加密码?
.NET 框架中是否有一些内置的魔法?
php - 对多个字段使用相同的盐
我连续有一个字段,我正在散列和加盐。每行的盐是不同的。我决定在每一行中散列/加盐几个字段。
与为每个字段生成新盐相比,对同一行中的这些新字段使用相同的盐会使数据更容易受到彩虹攻击吗?我的逻辑是,在同一行中只有几个字段将使用相同的盐,这将使密钥/盐管理更加容易。
php - 数据库是如何被黑客入侵的?关于盐渍等的问题
请耐心等待,我只学习 PHP 几个星期,所以示例代码可能会让我感到困惑。我想我终于明白加盐了!这是为了保护数据库内部的密码,如果被破坏。
我不明白的是,如果黑客试图找出用户的密码(假设这是他们的目标),为什么还要破解哈希?这不是更容易吗?密码猜测的唯一防御措施是每天限制输入密码 X 次还是 CAPTCHA?
数据库如何首先被黑客入侵?是更多的密码猜测还是可以通过MySQL注入获得哈希?
谢谢!
php - 用 PHP 和 MySQL 给我的哈希加盐
像大多数用户一样,我只是想找出一种安全的方式来存储密码。我在这里没有找到(或者可能是我缺乏理解)是如何在我的数据库中检索加盐散列并将盐与散列密码分开,特别是在将盐+密码保持在一个单列。
我正在从 PHP 手册中找到所有这些很酷的密码加密方法(SHA-256,但 MySQL 是否只支持 SHA/1 和 MD5?)以及其他内容,但不确定如何存储和检索密码。
所以,到目前为止,这就是我所理解的:
在那之后,我迷失了盐分。
不加盐检索密码很容易,但盐让我很困惑。我在哪里可以再次从 $salt 获得价值,特别是如果它是唯一且安全的?我是否将它们隐藏在另一个数据库中?恒定(似乎不安全)?
编辑: HMAC 中的关键变量应该是盐还是其他?
php - 在 PHP 和 MySQL 中加盐
我一直在使用 CodeIgniter 为网站开发登录库。验证码如下:
返回值表示成功、失败或禁止。每个用户都有一个存储在数据库中的唯一盐。
最初我从数据库中获取盐,在 PHP 中将用户输入的密码和数据库中的盐结合起来,然后用组合值再次查询数据库。我认为这会加快速度,因为只需要一次访问数据库并且代码更少。我还认为它同样安全,但是在阅读了对这个问题的最高回复后, 用 PHP 和 MySQL 腌制我的哈希......
首先,您的 DBMS (MySQL) 不需要任何对加密哈希的支持。您可以在 PHP 端完成所有这些工作,这也是您应该做的。
...我开始怀疑是否存在我没有发现的安全问题。
这段代码实际上有什么问题吗?
hashtable - Salting:使用用户名合理吗?
我正在辩论使用用户名作为加盐密码的一种手段,而不是与名称一起存储随机字符串。我的理由是盐的目的是防止彩虹表,那么是什么让这实际上不如那里的另一组数据安全?
例如,
hash( md5(johnny_381@example.com), p4ss\/\/0rD)
对比
hash( md5(some_UUID_value), p4ss\/\/0rD)
我不能坚持使用用户名并简化事情是否有真正的原因?我的网络搜索得到的唯一结果是关于盐应该如何像密码的辩论,但在没有任何理由的情况下结束,我的印象是这只是为了防止像 cain-and-able 破解者这样的东西在不在一百万年的范围内与之抗衡。考虑到现实的处理限制,如果人们知道哈希,他们仍然不知道密码,我认为这没什么大不了的,他们已经进入超级计算机范围以暴力破解每个单独的哈希。
有人可以在这里启发我吗?