问题标签 [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.
ruby - 无法在 Ruby-s 和 Go-s 实现之间创建相同的 scrypt 摘要
我在计算RbNaCl和Go 的 implementation之间相同的 scrypt 摘要时遇到问题。
这是我使用 rbnacl 生成密钥的方式:
opslimit和memlimit参数值已从文档中找到。
这是我用 Go 复制相同结果的尝试:
从文档中获取N、r、p和keyLength的值。
密码和盐具有相同的值。
我不是密码学家,但据我所知,应该有相同的成本因子值来获得相同的摘要?这里的问题是,由于两种实现都采用不同数量的参数,我也很难找到正确的组合。任何想法如何使这两种实现之间的成本因素匹配,以便我可以在两种编程语言之间计算相同的 scrypt 哈希?
python - 使用 Python 3.6 安装 Python 包 scrypt
我一直在尝试scrypt
在我的 Windows 64 位笔记本电脑上安装 Python 包,因为我想使用的另一个包需要它。同样的包也需要 Python 3.6,所以在我的电脑上我既有 Python 2.7 也有 3.6,并使用pip
和pip3
区分两者。一切pip install scrypt
安装正常,但使用时pip3 install scrypt
出现以下错误:
我尝试通过像这样克隆存储库来解决这个问题:
然后给出以下错误
然后我通过更改以下代码解决了这个错误setup.py
简单地让库是 64 位的
但这再次给出了一个错误:
之后我放弃了,来到这里问该怎么办。如何scrypt
在 Windows 上使用 Python 3.6?
android - Android 4.4 FDE(Scrypt 页脚)
对于像我这样对 Android 加密感兴趣并有兴趣教我一课的人 :D:
我正在各种操作系统上使用 Android 全盘加密 (FDE),我发现引入 Scrypt 的 Android 4 得到了相当大的保障,我找不到关于如何存储密钥的明确解决方案。我已在此处enter code here
( https://pastebin.com/qbszUSa3 ) 粘贴了一个 16KB 页脚,该页脚来自运行 Android 4.4.4 的加密三星 S4 mini 的用户数据分区,从神奇的 0xC5B1B5D0 开始。
我一直在不懈地尝试破译页脚的格式,以便我可以提取密钥,但是哈希/填充/盐结构似乎并不存在,甚至作为一个 scrypt 页脚,据我所知,是Android 4.0 中引入的密钥派生功能,我看不到我需要什么。我已经尝试过 Santoku-Linux 蛮力 python 脚本:(https://github.com/santoku/Santoku-Linux/blob/master/tools/android/android_bruteforce_stdcrypto/bruteforce_stdcrypto.py)尝试识别密钥,但它只拉回零。
我希望这个论坛上的人可以识别页脚的格式,并对这种类型的加密有一些见解或经验。
python - 如何让 py-scrypt 的“简单密码验证器”示例功能工作?
我正在使用提供的示例脚本py-scrypt
来构建一个简单的密码验证器。下面是我的测试脚本。
测试脚本:
问题: 我经常收到错误消息,例如:
最后几行变化为例如:
或者
或没有错误信息但返回 False
当我评论return scrypt.encrypt(os.urandom(datalength), password, maxtime=maxtime)
删除随机秘密消息生成器并取消评论return scrypt.encrypt(a_secret_message, password, maxtime=maxtime)
以使用非随机秘密消息时,该功能verify2_password
起作用。
问题:如何让随机秘密消息元素起作用?是什么导致它的失败?
python - Golang Scrypt 解密
我试图在 Go 中模仿,python 库 ( https://pypi.org/project/scrypt/ ) 中可用的功能,用于解密scrypt 生成的摘要(给定正确的密码)。
似乎 go 库只提供了一个用于加密数据的函数,而这个 python 库似乎不仅提供了这一点,而且还提供了一种反转/解密摘要的方法,以及提供使用 scrypt 进行更简单的单向哈希的函数功能。
我不是安全专家,我也不懂数学/数字,所以我觉得试图复制那个 python 库超出了我的理解。我认为这是可能的,因为 python 库似乎已经实现了它。
有谁知道我什至会从哪里开始解决这个问题。或者慷慨地利用他们的时间提供某种形式的示例代码来帮助我。
谢谢。
更新
scrypt 函数本质上是一个散列函数。它使用密码作为派生摘要的一种方式:意思是,应该无法检索原始消息(经过哈希处理的消息)。
因此,有了这种理解,Golang 的 scrypt 接口不支持任何此类功能(例如decrypt
. 但是 py-script 的decrypt
功能是如何工作的呢?
好吧,如果我回顾一下https://www.tarsnap.com/scrypt.html它指出 scrypt 可执行文件提供了一个“加密实用程序”......
一个简单的基于密码的加密实用程序可用作 scrypt 密钥派生功能的演示。可以调用 scrypt 实用程序
scrypt enc infile [outfile]
来加密数据(如果outfile
未指定,则将加密数据写入标准输出)或scrypt dec infile [outfile]
解密数据(如果outfile
未指定,则将解密数据写入标准输出)。
...并且在检查 py-script 我看到它嵌入了 scrypt 可执行文件的一个版本,这意味着 py-script 正在调用可执行文件的enc
和dec
函数。
因此,虽然我不一定知道 tarsnap 的加密实用程序是如何构建的以及它在幕后所做的事情(例如,正在使用什么实际加密算法),但事实是 scrypt 只是真正设计为密钥派生函数和摘要输出由那些附加的 tarsnap 函数以支持加密/解密的方式使用。
hash - 如何检查两个散列字符串是否属于相同的明文密码
最近我遇到了一个与密码编码/解码以及在数据库中匹配和更新相同的问题,需要你们的帮助。问题如下 -
用户来到门户创建帐户,该帐户的数据存储在 db 中(例如将其命名为 db1),其中包含 account_name 和 hashed_password
现在我必须将此数据移动到另一个数据库(例如将其命名为 db2),其中可能已经存在相同的数据。
现在,在移动数据时,我必须确定存储在 db1 和 db2 中的散列密码是否用于相同的明文密码并决定执行 -
- 如果匹配,则更新同一行 b。
- 如果不匹配插入新行
如何匹配相同明文密码的编码值(即使它们是相同的,因为每次散列运行它都会创建新的散列字符串)
我正在使用内置的 java 安全 api 和 Scrypt/MD5/Legacy 算法。
firebase - Firebase 的 scrypt 版本不提供与 save 相同的哈希值
我在这里是因为我正在处理这个repo。
当我比较来自 firebase 的哈希值和我使用firebase 创建的实用程序创建的哈希值时,使用相同的盐和相同的参数为相同的密码,它们是不一样的。
有人对解决方案样本有任何想法吗?我完全被卡住了,我不明白这里发生了什么^^'
谢谢 !
编辑:散列函数(也在这里)
}
编辑 2:我忘了说,但我使用 admin sdk 导出用户密码哈希。
python - 无法将库加载到 pyinstaller
问题
我一直在尝试将一个相当大的 python 应用程序构建为 Windows 的可执行文件。我已经完成了一个运行良好的 mac 构建,但我似乎卡在了 scrypt 模块在运行时尝试加载的 _scrypt .pyd 文件中。
我尝试了以下方法:
在我的规范文件中定义二进制文件和隐藏导入下的 scrypt .pyd 文件。这适用于我需要添加的所有其他文件。
使用运行时挂钩。
使用任何其他可用的 python 冻结应用程序。
编辑 scrypts 代码。
最多下载 SSL 证书 1.1。
重新安装 microsoft .dll 我可能会丢失。
重新安装 scrypt 模块和 pycryptodome 模块。
运行import scrypt
到 python 终端给了我OSError: [WinError 126] The specified module could not be found
,虽然奇怪地运行我正在尝试构建的程序,直到尝试使用 pyinstaller。
scrypt模块中的相关代码
非常感谢任何建议下一步去哪里,谢谢。
python - 尝试使用 AES 128 CTR 复制以太坊密钥库文件
我正在尝试通过使用 Python 中的 pyscrypt 和 Crypto 库执行加密来复制以太坊密钥库文件。我使用 MyEtherWallet 创建了一个 Ethereum Keystore 文件。我从 MyEtherWallet 中获取了 SALT、IV、私钥、密码的值,并将它们硬编码到我的程序中。
My CipherText 与 Ethereum Keystore 文件中的密文不同。我想获得与 MyEtherWallet 相同的密文值。只有不同的参数可能是计数器值。
perl - Crypt::ScryptKDF::scrypt_hash 如何对输入进行哈希处理?
我在考虑是否应该在此处或 crypto.stackexchange.com 上发布该问题。我认为这个问题更多地与实施有关,而不是与理论有关,所以我们开始吧:
我决定将scrypt
其用作我未来后端的密码散列方法。我的一些后端是用 Perl 编写的,所以我打算使用Crypt::ScryptKDF
.
很清楚如何使用它,但还有一个问题:(scrypt
据我所知)是密钥推导函数而不是散列函数。那么哈希实际上是如何完成的呢?
它只是用从相同(加盐)输入字符串(密码)派生的密钥加密(加盐)输入字符串(例如密码),还是还有更多?