问题标签 [pbkdf2]

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.

0 投票
1 回答
4422 浏览

python - 使用 make_password django 创建密码用户注册

我正在尝试创建一个注册表单,用户可以在其中输入用户名/密码组合。

我希望密码 MyPBKDF2用于密码哈希。

我有hashers.py

设置.py

视图.py

表格.py c

我正在提交密码,但以纯文本形式提交 - 这不好。

我在这里做错了什么?

0 投票
1 回答
278 浏览

performance - 加速 Haskell PBKDF2 算法

我在 Haskell 中编写了新版本的 PBKDF2 算法。它通过了RFC 6070中列出的几乎所有 HMAC-SHA-1 测试向量,但效率不高。如何改进代码?

当我在测试向量上运行它时,第三种情况(见下文)永远不会完成(我让它在 2010 Macbook Pro 上运行超过 1/2 小时)。

我相信这foldl'是我的问题。性能会foldr更好,还是我需要使用可变数组?

第三个测试向量

0 投票
1 回答
748 浏览

php - 从 md5 迁移到 PBKDF2 如何?

我需要将基于 md5 的简单身份验证模块升级到PBKDF2,并且我正在寻找可能的架构和额外的步骤和操作流程以及以下所需的更改:

一个。创建新用户帐户 旧的最简单的一种:password=md5(password)

湾。重设密码

目前:

C。验证

架构:

我没有看到任何关于如何实现的教程/文章,数据库架构问题,数据库中的密码/盐长度等..与 PBKDF2 相关。可能漏掉了,求参考。

有人可以阐明如何使用 php/mysql 实现 PBKDF2 的这些黑暗角落。

由于我使用的是 php 5.3,我将无法使用内置的 PBKDF2函数(即它至少需要 php 5.5)。

0 投票
1 回答
2330 浏览

scala - SHA3​​ 状态和 PBKDF2-HMAC-SHA3 测试向量

由于SHA-3似乎是一个已知函数(Keccak 是 NIST 哈希函数竞赛的决赛选手),我有几个与此主题相关的问题:

  1. NIST 网站称 NIST 因政府资金中断而关闭。SHA-3 是否有可能最终被接受?
  2. BouncyCastle库有一个 SHA-3 的实现,其摘要结果与维基百科文章中发布的示例相同(我对此进行了测试)。既然最终的标准没有通过,这能信吗?维基百科说这可能会改变,但它怎么能改变,因为最终的算法似乎不会改变(否则它将是另一种算法)。
  3. 这里有人指出,应避免将 PBKDF2 与 SHA-3 一起用于密钥强化和密码散列。但我不明白为什么?(如果算法不快,它怎么能给攻击者带来优势?)
  4. 我在任何地方都找不到测试向量来测试我在基于 BouncyCastle java api 的 scala中的PBKDF2 -HMAC-SHA3 实现。我可以发布我的测试规范和一些结果。但首先有人可以发布任何/规范测试向量吗?

这是我在scala中的实现:

对我来说,一个值得怀疑的事情是new SHA3Digest(256),构造函数中的 256 位长度,它应该与提供的密钥长度相同还是像我一样固定?我决定使用固定长度,因为只能使用一些固定值,并且对象 API 用户可以提供任何值作为键长度参数,但大多数不常见的值会导致SHA3Digest构造函数内部抛出异常。此外,默认值似乎是 288(当没有提供密钥长度时),这看起来很奇怪。

提前致谢!

0 投票
2 回答
40895 浏览

java - PBKDF2WithHmacSHA512 对比。PBKDF2WithHmacSHA1

我正在研究一个 Java 身份验证子系统,该子系统将数据库中的密码存储指定为生成的PBKDF2哈希值,我现在正试图决定是否应该使用SHA1SHA512作为 PRF。我浏览了两者的规格,但它们在数学上对我来说非常密集。有更好的加密理解的人能解释一下有什么PBKDF2WithHmacSHA512不同PBKDF2WithHmacSHA1吗?

这是我正在尝试做的事情:

0 投票
1 回答
1524 浏览

ruby - 为什么 OpenSSL::PKCS5.pbkdf2_hmac_sha1 生成不同长度的密钥?

我正在使用 Rails 3.2 并试图从pbkdf2_hmac_sha1函数生成密钥和 IV,以便使用 AES-CBC 256 对某些内容进行加密。

我用来生成它的代码是:

我使用 SecureRandom.urlsafe_base64 生成随机盐,并注意到有时当我使用一些盐时,IV 长度(应该是 16 个字节)是 15 个字节而不是 16 个字节。

例如,如果你有一个 salt = "lzbH78AwVK7U1eo-ephK6A",它会生成一个 IV = "604ff394b52e79255fa35b081684b0"(15 字节长)。

有人可以知道我做错了什么吗?

0 投票
1 回答
1865 浏览

codeigniter - 密码盐和 PBKDF2

我正在研究有关在数据库中存储密码的不同解决方案。在阅读了很多之后,我想我最终会得到PBKDF2

虽然我有点困惑我是否应该在我的 PBKDF2 函数中输入盐并将盐存储在一列中并将 PBKDF2 的密码存储在另一列中。

我也在使用 CodeIgniter 并找到了一个 PBKDF2 库(https://github.com/HashemQolami/CodeIgniter-PBKDF2-Library)声称我不需要单独存储盐。

使用$pbkdf2['hash']推荐的用户密码注册用户;无需单独存放用户的盐。

https://github.com/HashemQolami/CodeIgniter-PBKDF2-Library#step-2

因此,如果我假设正确,我只需要在函数中提供密码,然后函数负责其余部分吗?

0 投票
1 回答
1452 浏览

security - PKBDF2、AES、IV 和 salt 的更好实践

因此,我正在使用 AES 算法加密文档列表。我使用 PBKDF2 从用户密码中确定密钥。我有几个关于存储数据和 IV/salt 的问题:

如何存储文件:

  • 使用一个 AES 密钥、IV 和 salt 加密所有文档
  • 使用一个 AES 密钥加密每个文档,但将 IV 和 salt 分开

如何存储/检索 IV 和盐:

  • 从 PBKDF2 获取 IV(如 AES 密钥),无需将其存储在某处
  • 在每个文档加密之前生成 IV 并存储为纯文本
  • 对于盐,我认为没有选择 - 无论如何我需要将它存储为纯文本

正如我从那篇文章(http://adamcaudill.com/2013/04/16/1password-pbkdf2-and-implementation-flaws/)和其他一些文章中所理解的那样:

  • 可以将 IV 和 salt 存储为纯文本,因为有时攻击者甚至不需要知道它们
  • 不同的 IV 只能“扭曲”第一个密码块(对于 CBC 模式),但不是全部,因此它不会为 AES 方法带来安全性。
0 投票
1 回答
294 浏览

php - 2013 年的密码哈希

这些今天的“最佳”解决方案是什么?

这似乎是一个不错的选择: https ://defuse.ca/php-pbkdf2.htm

但是,升级到 PHP5.5 并使用它怎么样? http://php.net/manual/en/function.hash-pbkdf2.php

很好奇为什么 PHP 网站声明:

注意 PBKDF2 方法可用于存储密码的散列(NIST 批准用于该用途)。但是,应该注意 CRYPT_BLOWFISH 更适合密码存储,应该通过 crypt() 来代替。

对于低于 5.5 的 PHP 版本,使用 defuse.ca 解决方案是否公平,然后在升级到 PHP5.5 后将其切换出来?

这是 defuse.ca 的当前解决方案,将这个函数重命名为 hash_pbkdf2() 是否公平,并且在升级到 PHP5.5 后过渡会很顺利?

0 投票
1 回答
1589 浏览

java - 如何在 Java 中使用“PBKDF2WithHmacSHA1”输入密钥

我正在开发一个 Java 项目,我必须确保保存在纯文本文件中的用户密码的机密性。

为此,我将只在文件中写入密码的哈希值。更具体地说,我的意图是编写密码的哈希值和随机盐,再加上随机盐本身,以避免使用彩虹表和查找表。我还想对 PBKDF2 使用键拉伸,以使哈希的计算在计算上变得昂贵。最后,我想使用密钥哈希算法 HMAC 作为最后一层保护。

我正在尝试在 Java 代码中实现我的想法,并且我找到了一些上面介绍的操作示例:

我真正无法理解的是如何输入我的密钥作为 HMAC 算法使用的密钥,因为它似乎不是函数的输入。我浏览了 Java 文档,但找不到我的问题的解决方案。