- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
随着最近(例如 LinkedIn)对密码的所有讨论,我正在研究密码散列实现。在喝了两杯咖啡和晨读之后,我不再像刚开始时那样成为密码学家。我真的不想假装我是。
具体问题
hash = sha256_hex( unique_user_id + user_supplied_password );
hash = sha256_hex( sha256( unique_user_id ) + user_supplied_password );
# app_wide_string = one-time generated, random 64 7-bit *character* string.
hash = sha256_hex( unique_user_id + app_wide_string + user_supplied_password );
最佳答案
Bcrypt 很棒,因为您可以将工作系数从 4 调整到 31,每个增量都会创建一个指数所需的时间,我实际上已经绘制了它,在工作系数为 14 时,它已经占用了一秒钟,因此随着计算机变得越来越快你只需要改变一个参数,当然更新你的密码哈希......
我对 bcrypt 的主要担忧是,如果工作系数设置为高,那么它可能会因多个用户尝试登录而使您的系统过载,因此您必须对其进行调整,具体取决于并发登录的数量和系统资源。 ..
Salts还是需要的,主要目的是阻止离线攻击,如果salt空间太大,那么对手将无法生成查找表,64位salt看起来有点低,bcrypt有128 bit salts 加上工作因素使得离线攻击成为一个很大的挑战......是的,每个密码的 salt 应该是随机的,bcrypt 会为你生成一个,如果你为每个密码使用相同的 salt 那么你已经成功了对手更容易使用在线攻击来破解所有密码。
如果你正确设置了工作因素,Bcrypt 真的很适合在线攻击,因为即使我得到了散列,意思是说如果“对手”得到散列,工作因素会让翻阅整个字典变得非常痛苦,需要多天,如果密码不在字典中,那么我真的有麻烦了,因为蛮力攻击将是史诗般的,bcrypt 的密码位空间虽然有限但相当大:)
Sha256 现在可能需要一些时间,但最终计算机会变得越来越快,而且很容易受到攻击,unix 人员认为 crypt 太慢了,它永远不会成为问题,今天我做了一个几秒钟内的在线攻击,几天内的离线攻击,几周内的蛮力攻击(遍历整个密码位空间)......
关于encryption - Web 应用程序密码 : bcrypt and SHA256 (and scrypt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10963209/
具体this .我知道大多数 bcrypt 实现大约有 50 个字符,但我很确定 scrypt 并非如此。 最佳答案 来自 scrypt 继承者的开发者: ...question that is re
我已经为此苦苦挣扎了一段时间,希望有人以前做过这件事并且可以帮助我。我去找 Firebase 人员请求 scrypt 参数,以便将我们的用户身份验证从 Firebase 迁移到我们自己的服务器。现在我
我正在为只有 32KB 内部存储器的处理器开发 Litecoin Miner。所以我正在研究 SCrypt 算法,对于 Litecoin,它使用 N = 1024,这给我 2^10 * 1 * 128
我使用 Python 3.7.9 从 hashlib 对 scrypt() 进行了以下函数调用: def aes_encrypt(msg, passwordStr): kdfSalt = ur
我需要探测给定的字符串是否与加密 key 匹配。 一些需要匹配的例子: $s0$e0801$epIxT/h6HbbwHaehFnh/bw==$7H0vsXlY8UxxyW/BWx/9GuY7jEvGj
我正在使用 scrypt 算法将密码存储在数据库中,然后存储该字符串。 然后我将进行密码检查,然后对提供的密码进行散列处理,并根据密码进行检查。 我的问题是,我是否想增加比这更多的安全性?我是否也应该
如何使用 scrypt 加密在 java 中使用 KeyPairGenerator 创建的私钥?我想使用密码来保护私钥,这样即使他拥有私钥和数据,也无法使用私钥来解密我加密的数据。(如果您不建议使用其
据我了解最大时间参数: data = scrypt.encrypt('MESSAGE', 'password', maxtime=0.1) 意味着 python 将散列该时间量。 但是,我可以降低到
我不明白我应该如何使用 scrypt 存储散列密码。 例子如下: import pyscrypt hashed = pyscrypt.hash(password = b"password",
我读过 scrypt以及它相对于 bcrypt 的一些优势特定情况下的哈希算法。 无论如何,scrypt 似乎还没有被广泛使用。到目前为止,有没有人见过它的 .NET 实现(在 C# 中很受欢迎)?
我试图在 Go 中模仿 python 库 ( https://pypi.org/project/scrypt/ ) 中可用的功能,用于解密 scrypt 生成的摘要(给定正确的密码)。 似乎 go 库
我正在使用 Java scrypt library用于密码存储。当我加密事物时,它需要一个 N、r 和 p 值,其文档将其称为“CPU 成本”、“内存成本” ”和“并行化成本”参数。唯一的问题是,我实
I have really been struggling trying to get Bouncy Castle Scrypt going in my web app for password
我很确定没有,但我想确认 Bouncy CaSTLe for Java 中的 SCrypt 实现 SCrypt.generate() 是否在结果中包含参数(例如NodeJS 的实现确实如此)。 最佳答
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我正在使用 Bouncy CaSTLe 用 Java 编写一个应用程序,但我仍然希望通过 Java 加密体系结构编写尽可能可移植的代码。是否可以通过JCA访问SCrypt算法? In the li
我正在使用 nodejs 库 scrypt 来哈希我的密码。 scrypt.hash(new Buffer(data.password), scryptParameters, function(err
我需要使用 scrypt 算法,因为我已经在使用 hashlib,所以我想……为什么不呢?我已经查过了 this它指出 OpenSSL 1.1+ 是必要的。此外,根据 official doc : h
我尝试构建一个 python 脚本来从 snmp 传感器获取温度。 如果我在 Linux 终端上使用此命令行 snmpwalk 10.100.2.21 -On -v 1 -c public .1.3.
我一直在努力尝试让 Bouncy CaSTLe Scrypt 在我的网络应用程序中进行密码加密。我对 Java 编程和安全性还很陌生。 我试过查看 Bouncy CaSTLe 的 documentat
我是一名优秀的程序员,十分优秀!