OpenSSL 可用于计算文件或来自 shell 的给定输入的哈希值,如下所示:
echo -n "abc" | openssl dgst -sha256
或者
openssl dgst -sha256 myfile.txt
我也可以以类似的方式计算 KDF 值,例如 PBKDF2 或 bcrypt 或 scrypt 或 Argon2 吗?
因此给定一个输入(纯文本或文件名)加上适当的参数(如迭代次数),我能得到相应的 KDF 结果吗?
理想情况下我会使用openssl
它(因为它在所有平台上都可用)但如果有另一种标准化工具或方法,那也可以。
答案1
经过一些实验,我发现nettle-pbkdf2
它在 macOS(通过 Homebrew)和 Linux(通过apt get
)上都很常见。
echo -n 'MyPaSsWoRd' | nettle-pbkdf2 --iterations 500000 --length 64 --hex-salt 436d07d286c730ad
给出 64 字节(512 位)的 PBKDF2 结果,使用 HMAC-SHA256 作为底层散列函数。