openssl 中是否有任何 C API 可以从给定字符串派生密钥
我需要 openssl 库中的 C API 来从给定的字符串派生密钥。我在哪里可以获得这方面的示例源代码?
I need a C API in openssl library for deriving the Key from a given string. Where can i get sample source code for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
执行此操作的标准算法是 PBKDF2(基于密码的密钥派生函数版本 2 的缩写)。 OpenSSL 中有一个 PBKDF2 的实现,在
openssl/evp.h
中声明:当您生成新密钥时,您应该使用
openssl/ 中的
创建盐。RAND_bytes()
rand.hiter
是迭代计数,它应该与您的预期应用程序可以容忍的一样大 - 至少类似于 20,000。A standard algorithm to do this is PBKDF2 (an acronym for Password-Based Key Derivation Function version 2). There is an implementation of PBKDF2 in OpenSSL, declared in
openssl/evp.h
:When you are generating a new key you should use
RAND_bytes()
fromopenssl/rand.h
to create the salt.iter
is the iteration count, which should be as large as your intended application can tolerate - at least something like 20,000.我找到了示例,说明如何从一个密码。该示例可以追溯到 2008 年,据我所知,OpenSSL 中尚未记录该示例。因此,让我发布完整的示例源代码来帮助所有尝试使用 OpenSSL API 的可怜人。
请注意,这不是我的代码,它来自 Marek Marcola!所有的功劳都是他的功劳。
I found an example on how to generate a key from a password. The example dates from 2008, as far as I can tell this is still undocumented in OpenSSL. So let me post the full example source to help all those poor souls who try to use the OpenSSL API.
Please note that this is NOT my code, it comes from Marek Marcola! All credits are due to him.