问题标签 [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.
node.js - 如何处理需要在不同环境中构建的多个依赖项?
背景:我们正在本地 Mac OS X 机器上开发多个 Node.js 微服务。我们的开发环境是一个 Vagrant/Docker 环境,代码被映射到其中运行。
对于特定的微服务,我们使用了两种不同的依赖项:ghooks(devDependency)和argon2-ffi(依赖项)。
我们现在有一个问题,具体取决于运行npm install
的位置npm rebuild
。在本地开发机器上运行一个,argon2 的绑定阻止该服务在 Docker 容器中运行。在 docker 容器中运行一个,开发机器的绑定不正确,因此所有 Git 命令都失败。
为了使问题更加复杂,我们配置的 ghook 会在合并时查找 package.json 文件的更改并自动运行npm install
。(这是我们拥有的所有十几个微服务的行为,并希望尝试保留这种行为。)
我们已经尝试了一些事情,例如在 Docker 容器中添加更多的 SSH 挂钩并在合并时重建,但是如果 Vagrant 机器未启动或处于错误状态,这会导致问题。我们已经尝试将 Linux 二进制文件 node-gyp 为 argon2 创建到 Git 中,但是我们在本地开发环境和构建过程中都在 Docker 容器之外运行了自动化测试,这些测试失败了,因为它们不是在容器内运行。
有没有办法管理如何使用 node-gyp 构建特定的依赖项?另一个我们没有想到的策略?
node.js - 在 Node 中使用 libsodium.crypto_pwhash (Argon2)
crypto_pwhash_str
我在我的 Node 项目中工作时遇到了麻烦。我正确导入了 libsodium-wrappers-sumo 和 libsodium-sumo 库,并且能够成功调用其他函数。我对有问题的函数的调用如下所示:
在这种情况下,密码只是一个带有字母“a”的字符串对象。
当我运行调试器并试图找出问题所在时,我得到了这个内部代码块:
由于某种原因,它无法进入 for 循环并且对_crypto_pwhash_str()
评估的调用。-1
有没有人对这个库有任何经验或者可以帮助我找出我做错了什么。对 Node 来说相当新,所以我很迷茫。
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# 网站和服务器。
先感谢您
php - 如何将 Argon2 算法与 password_hash 一起使用?
所以听说 PHP 7.2 引入了新的Argon2 算法。但是我对如何将它与现有代码一起使用感到困惑。例如,我有这个
PASSWORD_DEFAULT
现在使用 Argon2 吗?如果有的话,我需要改变password_verify
什么?bcrypt 现在被认为是不安全的吗?
java - 在python和java中使用argon2的不同长度的散列密码
不确定它是否是正确的输出,但是当我在 java 中使用 argon 对密码进行哈希处理时,我得到了输出:
而python给了我:
参数似乎相同:i, 512, 2, p =2
任何 argon2 大师可以告诉我如何获得相同长度的输出?更喜欢玩 java,因为它是一个简单的 ussd 应用程序。
php - PHP7 中的 Argon2i - 选择适当的选项
我应该使用什么值来生成 Argon2i 哈希,我如何找到我的硬件可以承受的适当设置?
即:
作为:
PHP 文档中有一个简单的脚本,用于查找 bcrypt 哈希的适当成本值。这如何适合 Argon2?
php - PHP7 中的 Argon2 算法:了解 time_cost 参数
我正在尝试在身份验证库中实现 Argon2 算法。我希望能够为用户设置参数提供一些有用的提示。
虽然我了解参数如何影响算法memory_cost
,threads
但我似乎无法理解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 的方案。找出最大使得运行时间不超过。如果超过偶数,则相应减少。h
t
t
x
x
t = 1
m
使用刚刚确定的值
m
、h
和散列所有密码t
。
审讯 2 -那么这是否意味着 PHP 公开了时间量x
并确定了正确的迭代量t
?
PHP RFC所说的:
定义算法执行时间和迭代次数的时间成本
[...]
时间成本表示哈希算法将运行的次数。
审讯 3 -他们谈论时间和迭代次数。现在我更加困惑了。是一次还是多次迭代?如果我用 运行哈希time_cost = 2
,这是否意味着需要 2 秒?
基准
为了帮助我理解一点,我制作了这个小基准脚本。我得到以下结果(1 个线程):
我仍然不明白这time_cost
可能是几秒钟内的时间。
如果它是一个上限(意味着它可以运行的最长时间),那么它甚至没有帮助。例如,t_cost=8
这m_cost=16MB
似乎是合理的,因为它需要大约 200 毫秒才能运行。但这是否意味着该算法有一天可能需要长达 8 秒才能运行?可用性将是灾难性的!
我真的很努力地做我的研究,我很不舒服,我需要问来理解这一点。
但这确实令人困惑。由于它与安全性有关,我真的很想弄清楚这一点。
感谢您的见解!
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?
python - 无法安装 Python argon2_cffi
我正在尝试在不使用 pip 的情况下在我的 python 3.5 虚拟环境中安装 argon2_cffi。我已经从github下载了这个包。当我尝试安装它时,
python setup.py build 或 install,它失败并出现错误
php - 未定义的常量 PASSWORD_ARGON2I Laravel
我在使用 laravel 中引入的新密码散列 laravel 时遇到了困难(argon)。我收到此错误消息
我的php版本类型是argon推荐的,我在mac系统上工作
请帮忙