gpt4 book ai didi

python - Golang Scrypt 解密

转载 作者:IT王子 更新时间:2023-10-29 01:57:03 26 4
gpt4 key购买 nike

我试图在 Go 中模仿 python 库 ( https://pypi.org/project/scrypt/ ) 中可用的功能,用于解密 scrypt 生成的摘要(给定正确的密码)。

似乎 go 库只提供了一个加密数据的函数,而这个 python 库似乎不仅提供了那个,而且还提供了一种反转/解密摘要的方法,并提供了一个使用 scrypt 的函数来实现更简单的功能-way 哈希函数。

我不是安全专家,也不懂数学/数字,所以我觉得尝试复制那个 python 库超出了我的理解范围。我认为这是可能的,因为 python 库似乎已经实现了它。

有谁知道我该从哪里着手解决这个问题。或者请他们花时间提供某种形式的示例代码来帮助我。

谢谢。

更新

scrypt 函数本质上是一个哈希函数。它使用密码作为导出摘要的一种方式:这意味着,原始消息(经过哈希处理的消息)应该无法被检索。

因此,有了这种理解,Golang 的 scrypt 接口(interface)不支持任何此类函数(如 decrypt)是有道理的。但是 py-script 的 decrypt function 又如何呢?工作?

好吧,如果我回头看看https://www.tarsnap.com/scrypt.html它声明 scrypt 可执行文件提供了一个“加密实用程序”...

A simple password-based encryption utility is available as a demonstration of the scrypt key derivation function. The scrypt utility can be invoked as scrypt enc infile [outfile] to encrypt data (if outfile is not specified, the encrypted data is written to the standard output), or as scrypt dec infile [outfile] to decrypt data (if outfile is not specified, the decrypted data is written to the standard output).

...在检查 py-script 时,我发现它嵌入了一个版本的 scrypt 可执行文件,这意味着 py-script 正在调用可执行文件的 encdec 函数。

所以虽然我不一定知道 tarsnap 的加密实用程序是如何构建的以及它在幕后做了什么(例如正在使用什么实际的加密算法),但事实是 scrypt 只是真正设计为 key 派生函数并且那些附加的 tarsnap 函数以支持加密/解密的方式使用摘要输出。

最佳答案

没有scrypt的解密,只有验证。

scrypt decrypt 函数的作用是获取密码和由 encrypt 函数创建的密码哈希,并通过对密码执行与 相同的操作来验证>encrypt 函数执行,然后比较两个哈希值。

检查 Golang 文档以获取验证函数名称和用法。

scrypt 不解密,这是缺乏理解的开发人员用词不当。它甚至不是加密,它是一种密码哈希函数,无法从中获得原始输入。

关于python - Golang Scrypt 解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com