问题标签 [argon2-ffi]

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 投票
0 回答
141 浏览

node.js - 如何处理需要在不同环境中构建的多个依赖项?

背景:我们正在本地 Mac OS X 机器上开发多个 Node.js 微服务。我们的开发环境是一个 Vagrant/Docker 环境,代码被映射到其中运行。

对于特定的微服务,我们使用了两种不同的依赖项:ghooks(devDependency)和argon2-ffi(依赖项)。

  • ghooks使用node- gyp在本地机器(Mac OS X)上创建绑定。
  • argon2-ffi使用node- gyp在 Docker 容器 (Ubuntu) 中创建绑定。

我们现在有一个问题,具体取决于运行npm install的位置npm rebuild。在本地开发机器上运行一个,argon2 的绑定阻止该服务在 Docker 容器中运行。在 docker 容器中运行一个,开发机器的绑定不正确,因此所有 Git 命令都失败。

为了使问题更加复杂,我们配置的 ghook 会在合并时查找 package.json 文件的更改并自动运行npm install。(这是我们拥有的所有十几个微服务的行为,并希望尝试保留这种行为。)


我们已经尝试了一些事情,例如在 Docker 容器中添加更多的 SSH 挂钩并在合并时重建,但是如果 Vagrant 机器未启动或处于错误状态,这会导致问题。我们已经尝试将 Linux 二进制文件 node-gyp 为 argon2 创建到 Git 中,但是我们在本地开发环境和构建过程中都在 Docker 容器之外运行了自动化测试,这些测试失败了,因为它们不是在容器内运行。


有没有办法管理如何使用 node-gyp 构建特定的依赖项?另一个我们没有想到的策略?

0 投票
1 回答
899 浏览

node.js - 在 Node 中使用 libsodium.crypto_pwhash (Argon2)

crypto_pwhash_str我在我的 Node 项目中工作时遇到了麻烦。我正确导入了 libsodium-wrappers-sumo 和 libsodium-sumo 库,并且能够成功调用其他函数。我对有问题的函数的调用如下所示:

在这种情况下,密码只是一个带有字母“a”的字符串对象。

当我运行调试器并试图找出问题所在时,我得到了这个内部代码块:

由于某种原因,它无法进入 for 循环并且对_crypto_pwhash_str()评估的调用。-1

有没有人对这个库有任何经验或者可以帮助我找出我做错了什么。对 Node 来说相当新,所以我很迷茫。

0 投票
0 回答
371 浏览

android - Argon 2 库在 android 中的使用

我对使用 c 库一无所知,我需要在我的 android 应用程序中使用 Argon2 库https://github.com/phc/phc-winner-argon2,我阅读了很多关于将 c 代码添加到 android 应用程序的文章,但是我找不到库的 .so 文件,我尝试在 Visual Studio 中打开库进行构建,但没有运气。我尝试在cmd windows中使用make命令但没有运气,是否可以将c代码直接添加到我的android应用程序中而无需构建,或者我必须构建一个操作系统?我正在使用 Mac 计算机进行 android 开发。

如果可能,请指导我这样做,注意我们需要将相同的库添加到我们的 ios 应用程序和 c# 网站和服务器。

先感谢您

0 投票
2 回答
24808 浏览

php - 如何将 Argon2 算法与 password_hash 一起使用?

所以听说 PHP 7.2 引入了新的Argon2 算法。但是我对如何将它与现有代码一起使用感到困惑。例如,我有这个

PASSWORD_DEFAULT现在使用 Argon2 吗?如果有的话,我需要改变password_verify什么?bcrypt 现在被认为是不安全的吗?

0 投票
1 回答
805 浏览

java - 在python和java中使用argon2的不同长度的散列密码

不确定它是否是正确的输出,但是当我在 java 中使用 argon 对密码进行哈希处理时,我得到了输出:

而python给了我:

参数似乎相同:i, 512, 2, p =2

任何 argon2 大师可以告诉我如何获得相同长度的输出?更喜欢玩 java,因为它是一个简单的 ussd 应用程序。

0 投票
1 回答
976 浏览

php - PHP7 中的 Argon2i - 选择适当的选项

我应该使用什么值来生成 Argon2i 哈希,我如何找到我的硬件可以承受的适当设置?

即:

作为:

PHP 文档中有一个简单的脚本,用于查找 bcrypt 哈希的适当成本值。这如何适合 Argon2?

0 投票
1 回答
1106 浏览

php - PHP7 中的 Argon2 算法:了解 time_cost 参数

我正在尝试在身份验证库中实现 Argon2 算法。我希望能够为用户设置参数提供一些有用的提示。

虽然我了解参数如何影响算法memory_costthreads但我似乎无法理解time_cost参数。

PHP 文档说什么:

time_cost (integer) - 计算 Argon2 散列可能花费的最长时间。默认为 PASSWORD_ARGON2_DEFAULT_TIME_COST。

询问 1 -默认值为 2。它似乎代表时间,遗憾的是,单位似乎丢失了。是几秒钟吗?毫秒?

这个SO answer说默认是 2 seconds

Argon2 规格说明了什么:

在第 3.1 章Inputs中,这里没有提到时间,只提到了一些迭代。

迭代次数t(用于独立于内存大小调整运行时间)可以是从 1 到 2^32−1 的任何整数;

与时间相关的值在第 9 章推荐参数中定义,它说:

计算出x每次通话可以承受的最长时间(以秒为单位)

[...]

使用不同数量的 pass运行 type y、 memorym和lanes 和 threads 的方案。找出最大使得运行时间不超过。如果超过偶数,则相应减少。httxxt = 1m

使用刚刚确定的值mh和散列所有密码t

审讯 2 -那么这是否意味着 PHP 公开了时间量x并确定了正确的迭代量t

PHP RFC所说的:

定义算法执行时间和迭代次数的时间成本

[...]

时间成本表示哈希算法将运行的次数。

审讯 3 -他们谈论时间和迭代次数。现在我更加困惑了。是一次还是多次迭代?如果我用 运行哈希time_cost = 2,这是否意味着需要 2 秒?


基准

为了帮助我理解一点,我制作了这个小基准脚本。我得到以下结果(1 个线程):

我仍然不明白这time_cost可能是几秒钟内的时间。

如果它是一个上限(意味着它可以运行的最长时间),那么它甚至没有帮助。例如,t_cost=8m_cost=16MB似乎是合理的,因为它需要大约 200 毫秒才能运行。但这是否意味着该算法有一天可能需要长达 8 秒才能运行?可用性将是灾难性的!


我真的很努力地做我的研究,我很不舒服,我需要问来理解这一点。

但这确实令人困惑。由于它与安全性有关,我真的很想弄清楚这一点。

感谢您的见解!

0 投票
0 回答
57 浏览

hash - 无法在 JRuby 上安装 Argon2

我正在尝试在 JRuby 9.1.13 上安装 argon2 gem,这是 gem 的主页。所以我运行 gem install argon2 并得到了错误

我知道它与 JRuby 有关,因为我试图将它安装在 MRI Ruby 上并成功。

根据文档,它在 JRuby 上进行了测试

测试的平台是 MRI Ruby 2.2、2.3 和 JRuby 9000。在其他平台上没有做出任何断言。

我做错了吗?或者是否有任何替代 gem 可以在 JRuby 上实现 argon2?

0 投票
1 回答
3175 浏览

python - 无法安装 Python argon2_cffi

我正在尝试在不使用 pip 的情况下在我的 python 3.5 虚拟环境中安装 argon2_cffi。我已经从github下载了这个包。当我尝试安装它时,

python setup.py build 或 install,它失败并出现错误

0 投票
1 回答
1488 浏览

php - 未定义的常量 PASSWORD_ARGON2I Laravel

我在使用 laravel 中引入的新密码散列 laravel 时遇到了困难(argon)。我收到此错误消息

我的php版本类型是argon推荐的,我在mac系统上工作

请帮忙