问题标签 [scrypt]

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 回答
138 浏览

node.js - Scrypt 在 verifyKdf 上失败,只有“错误”

我已经设置了 Scrypt 和散列 - KDF - 工作正常。

但是,每当我尝试时,verifyKdf()我都会遇到错误。

返回 scryptNative.verifySync(args[0], args[1]); ^

错误

在 Object.verifyKdfSync (/home/arc/Desktop/scrypt-test/node_modules/scrypt/index.js:331:25)

我的代码来散列它。

catch()然后验证:(这里它属于err简单包含“错误”)

0 投票
1 回答
790 浏览

encryption - 我是否需要对已使用 scrypt 散列的密码进行加盐处理?

我现在正在将密码存储在数据库中,方法是使用 scrypt 算法,然后存储该字符串。

然后我进行密码检查,然后对提供的密码进行哈希处理,并根据该密码进行检查。

我的问题是,我是否想增加更多的安全性?我也应该对加密字符串加盐吗?

0 投票
1 回答
550 浏览

python - 将 C uint8_t 转换为 python utf_16_be

我正在尝试移植一个使用 scrypt 生成密码的 python 脚本。

结果应该是:9f2117416c7b2de9419a81c4625a28e40c16ac92aaa3000bb2c35844b3839eb1

在 C 中,我使用 libsodium crypto_pwhash_scryptsalsa208sha256_ll() 函数。

如果我尝试从该变量传递密码:

我没有得到相同的密钥。我试图从 python 脚本中删除 ".encode("utf_16_be", "replace")" ,然后得到相同的结果。

那么如何将我的 C 变量转换为与 python 变量相同的变量呢?

编辑:原始软件是 Java 并且似乎将字符串编码为 UTF-16 大端。现在我需要将 C 字符串编码为相同的格式。

0 投票
1 回答
367 浏览

python - 在 Python 中导入库 Scrypt 失败

当我尝试在使用 pip 安装包后立即从 Python 导入 Scrypt 库时,错误消息是:

英文消息“WindowsError: [Error 193] %1 nÒo Ú um aplicativo Win32 vßlido”表示它不是有效的 win32 应用程序

在另一台计算机上,当我尝试导入相同的库时出现错误:

在英语中,消息“NÒo foi possÝvel encontrar o m¾dulo especificado”表示无法找到该模块

0 投票
1 回答
914 浏览

python - 使用 Scrypt 和 PBKDF2 的算法 - Python

我试图在 Python 上重现这个算法

(双管道表示在密码中添加 0x1 或 0x2)

我做了这个:

问题是它不能正常工作,因为它会生成这个

但正确的输出是这样的:

有人能帮我吗?谢谢。

这是完整的代码: http: //pastebin.com/QL0tQ83v


要使用此脚本,您需要安装这些库:

0 投票
1 回答
4528 浏览

java - 如何在 Java 中实现 Scrypt?

我一直在努力尝试让 Bouncy Castle Scrypt 进入我的网络应用程序以进行密码加密。我对 Java 和安全性编程相当陌生。

我曾尝试查看 Bouncy Castle 的Scrypt 类文档。但是,我很难弄清楚它是如何工作的。它似乎并没有真正提供有关如何创建类或类似内容的太多信息。

我在 Stack Exchange 和 Google 上进行了搜索,看看是否有任何地方可以给我一个很好的例子来说明我应该做什么来创建这个类。我找到了这个问题和答案,并在没有创建课程的情况下进行了尝试,但这似乎也不起作用。

最重要的是,我的导入似乎也不想工作。

这是我拥有的所有代码:

我想使用 Scrypt,因为它在加密密码方面似乎是最安全的,但接下来似乎无法实现。我真的很接近使用 PBKDF2,因为它有更多文档,但我希望有人可以帮助我完成这项工作。

0 投票
1 回答
912 浏览

java - 我应该使用 jBcrypt 还是 PBKDF2 在 Java 中进行密码加盐?

大家好!

我对Java编程还是很陌生,所以如果这个问题不够彻底,请原谅我。

我正在尝试为需要密码登录的 Web 应用程序找到一种在 Java 中对我的密码进行加盐和哈希处理的方法。

我尝试使用 Bouncy Castle bcrypt 和 scrypt 类来获得一种加盐、散列和密码验证的方法,结果发现这些类中的任何一个都没有密码验证方法。如果我在此评估中不正确,请告诉我密码验证的方法是什么,或者我是否遗漏了什么。

作为替代方案,我决定在我崩溃并转到 PDBKF2 之前尝试 bcrypt,因为那里有更多的文档而不是 bcrypt 或 scrypt。

我遇到的问题是我在这个网站上找到了 Mindrot 的 bcrypt:http://www.mindrot.org/projects/jBCrypt/#download,但我担心它已经有两年没有更新了。我工作中的一位开发人员告诉我只使用在过去六个月内不断更新的加密方法,所以即使考虑它也让我感到非常紧张。

最近有人用过jBcrypt吗?它仍然可以用于我的项目吗?

如果没有,我可以通过密码验证获得 bcrypt 或 scrypt 的可靠地方在哪里?

提前致谢!

0 投票
0 回答
253 浏览

ruby - 如何将 ruby​​ 的 scrypt 生成的密码导入 firebase?

我正在尝试将 ruby​​ 的scrypt生成的加密哈希导入 Firebase。

Ruby 的 scrypt 没有定义(我可以说)它的输出是什么。它看起来像这样:

另一方面,Firebase 需要此处描述的几个输入。他们是:

  • 哈希键(必需)
  • 盐分离器(可选)
  • 回合(必填)
  • 内存成本(必填)
  • 密码哈希(必填)
  • 密码盐(必填)

那么,我如何从加密的哈希映射到这些输入?


深入研究一下,如果你添加一个调试器并输出这个东西,那么你可以看到 salt 是 SCrypt::Password 输出的一部分:

但是我们仍然缺少一些东西。IMO,“哈希键”是最大的问号。Scrypt(gem)不会在任何地方初始化 - 所以没有存储特定于我的应用程序的密钥。它似乎也不是散列输出的一部分 - 所以它也没有与它一起存储。也就是说,Firebase 期望它作为命令行参数,这意味着它被重复用于每个密码,因此是某种全局设置。这些似乎没有加起来。

0 投票
0 回答
678 浏览

python - Python 为 .so 模块发出导入错误

将 scrypt-0.8.0 下载到 Centos 7 系统上。我正在使用位于我的主目录中的 Anaconda 2.7.12 版本的 python。解压 scrypt 文件后,我运行了“python setup.py install”。构建和安装完成,没有任何错误迹象。然后我启动了python解释器并输入了'import scrypt'。引发 ImportError 异常,并显示消息“没有名为 _scrypt 的模块”。

我打开创建的 .egg 文件,看到有一个文件 _scrypt.so。我还进入了原始构建目录,看到了文件 scrypt.py 和 _scrypt.so。在那个目录中,我再次启动了 python,执行了 import 命令,并成功导入了包并运行了一些 scrypt 示例。这告诉我该文件已正确构建并已正确安装。

为什么python找不到模块?

0 投票
1 回答
144 浏览

authentication - 我应该如何设置 Scrypt 散列函数的参数,以便我可以获得大约 250 毫秒的散列处理持续时间?

我想用 SCrypto 散列函数对密码进行散列,但如果我要使用默认参数,我会得到大约 5-6 秒的散列持续时间。我如何设置参数以使持续时间少于 1 秒(最好是 250 毫秒)

SCrypt.scrypt(通过,盐,n,r,p,长度)

默认 Scrypt(pass, salt, 16384, 8, 1, 长度)