问题标签 [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.
security - 使用加盐密码进行身份验证
我scrypt
用来生成用户密码的强哈希。我想登录用户,但不想通过线路以明文形式发送密码,我如何检查密码是否正确(没有往返),因为它是加盐的?
我有一个客户端/服务器方案。客户端是台式计算机上的应用程序(不是网站,也不是 http 服务器)。
我怎样才能做到这一点?我只走了这么远:我正在客户端上生成盐 + 哈希,从中形成一个 mcf 并将其发送到我的服务器。将 mcf 保存到数据库。我没有发送密码,只是几乎无用的哈希(因为 scrypt 应该非常强大,并且需要几百万年才能将其反转)。我现在如何将用户登录到我的服务,而不将明文密码发送到服务器进行比较?我不能重新散列它,因为它会由于不同的盐而导致不同的散列?我需要将盐发送到客户端,对密码进行哈希处理,将哈希发送到服务器,进行比较,然后发回一些身份验证令牌。
我怎样才能做到这一点?身份验证令牌真的安全吗?我猜它可以简单地用来冒充任何人?
javascript - 如何在 JavaScript 中运行 SCrypt
目前正在尝试使用Triplesec Scrypt在 Javascript 中的 scrypt 中对密码进行哈希处理。但是,我不完全确定应该传入哪些参数。构造函数应该是
而且我不确定 c 和 klass 应该是什么。根据源代码,我想我应该使用v2,其中c是64,klass是XOR,但我不确定如何传入XOR。有人知道如何使用这个功能吗?
encryption - Swift 应用程序中的哈希密码
出于安全目的,我将加密一些数据,包括我的应用程序中的用户密码。
我的同事选择了 scrypt 散列算法,长度为 64 字节,种子固定,然后转换为十六进制。
散列“ A12345678Z ”导致:25fac84a1cc3a8f6706848d1016cfe7e9d3631691306dcacae68c11c7b54f0bf89e7a7fc51f7fcc19671775acb21c8d928c4c96bb66d915925de58b8b36ab251
种子是“<strong>HeanpyftAkWilfUd”。
在服务器上,他们正在使用这个实现:https ://github.com/ricmoo/pyscrypt
例子:
->
我的问题是如何在 Swift 中做到这一点?使用什么库以及如果可能的话 - 给我看示例代码,这将导致散列“ A12345678Z ”完全如此:
android - 为 android 编译 lambdaworks scrypt
我开发了一个Android应用程序,它需要使用来自lambaworks(这个)的scrypt库,它只包含一个架构的.so文件,他们写道,你必须为所有其他平台自己编译库,但我真的不知道怎么做这样做是因为我根本不是 C 专家,而且我从未使用过 NDK。你们中的一些人能解释一下如何编译库以获得所有架构的 .so 文件吗?
非常感谢
python - Python - 使用 scrypt 存储密码的正确方法?
我不明白我应该如何用 scrypt 存储散列密码。
这是示例:
在上面的示例中,我们可以看到哈希值根据参数N, r, p
值而变化。
这是否意味着我也应该N, r, p
在数据库中保存值?
将来当市场上出现更强大的硬件时,我应该怎么做?例如,要求用户更改密码以便可以应用新的哈希函数或其他什么?
php - 如何在 php 共享主机中使用 scrypt
我只是在学习 php 我想使用 scrypt 进行密码哈希,但根据这个网站: https ://scott.arciszewski.me/blog/2013/10/php-scrypt-setup
我需要在网络服务器中拥有 root 权限才能使用 scrypt。但我们无法直接访问网络服务器,因为它是共享主机。我想使用 scrypt。提前致谢。
javascript - 是否可以在 SJCL 中使用 bcrypt 或 scrypt 作为 PBKDF2 的替代品?
我一直在使用这个库,我真的很喜欢它,但从我读到的内容来看,PBKDF2 比 bcrypt 或 scrypt 更容易受到暴力攻击。我遇到了这个关于添加 scrypt 支持的问题,但似乎没有一个明确的答案。
理想情况下,我想简单地替换 PBKDF2 功能,但我对 SJCL 的内部运作不够熟悉,不知道这是否可能。
如果可能的话,我想你可以很容易地使用像这种纯 JS bcrypt实现这样的东西。
encryption - 设备存储如何使用 WSO2 EMM 加密?
该文档说明了传输层的安全性。但是有关设备存储加密的唯一信息就是“它已加密”。
用于在 Android 设备上加密存储的 Android 资源定义示例
我猜它使用Android的默认加密。我错了吗?
如果我是对的,是否可以使用另一种类型的加密/容器?比如veracrypt和类似的......
任何线索将不胜感激。
提前致谢。
问候。
jvm - 为什么第一次调用 scrypt() 只使用 1% 的 CPU 并在 GCE 中花费半小时?
[总结和回答:显然问题在于随机数生成器的播种需要很长时间。请看下面我的回答。]
在 Google Compute Engine (GCE) 中,我的 Java 虚拟机应用程序向scrypt密码哈希函数发出的第一个请求需要很长时间——因为我想代码还没有被即时编译。scrypt("pswd", 2,1,1)
所以我正在通过在服务器启动时进行虚拟调用来预热 scrypt 。然而,发生的情况是 CPU 上升到 300%+,在那里停留 10-20 秒,然后回落到 1%,尽管对 scrypt() 的请求还没有完成。现在,CPU 保持在 1%,持续数分钟(长达半小时,使用 2 个 GCE vCPU),直到最终 scrypt() 完成。
为什么会有这种奇怪的行为?
为什么 scrypt() 在完成之前不会继续以 300% 的 CPU 运行?它没有耗尽内存。看看下面的 Docker 统计数据。
在第一个 scrypt() 请求之后,后续请求“立即”完成。例如,this:
SCryptUtil.scrypt("pswd", 65536, 8, 1)
耗时 < 0.2 秒,尽管它比:
SCryptUtil.scrypt("pswd", 2, 1, 1)
which(如前所述)是我的第一次 scrypt() 调用,通常需要几分钟,使用 4 个 GCE vCPU — 通常大约半小时,具有 2 个 GCE vCPU。
我正在使用具有 4 个 vCPU、3.6 GB RAM 的 GCE 实例。码头工人 1.11.1。OpenJDK 1.8.0_77。在 Alpine Linux 3.3 Docker 容器中,Ubuntu 16.04 Docker 主机。无法在我的笔记本电脑上重现此内容;在我的笔记本电脑上,scrypt 总是很快,不需要任何预热。
docker stats
,5-10 秒后:(现在 edp_play_1,第 2 行,使用 300+% CPU)
docker stats
半分钟后:(现在 edp_play_1 仅使用 0.97% 的 CPU — 并保持这种状态,最多半小时,直到完成)
如果你想在 Scala 和 sbt 中测试,这就是我在 GCE 中发生的事情:
注意:这与 Docker 无关。我刚刚在 Docker 外部进行了测试,直接在 GCE 实例上安装了 openjdk 8,结果是一样的:scrypt(..)
第一次大约需要 3 分钟,但 CPU 90-100% 空闲。此后,对 scrypt 的请求立即完成。
asp.net - 如何使用 Scrypt.NET 将密码与散列密码进行比较?
注册后,我试图在 asp.net 中使用 scrypt 在数据库中对用户密码进行哈希处理,但是当我尝试登录时,我不知道如何将用户密码与数据库中的哈希值进行比较.
谁能帮我弄清楚如何将密码与散列密码进行比较?
对于注册我使用:
并登录: