【问题标题】:Is there a function in Openssl crypto lib to securely input a password?Openssl 加密库中是否有安全输入密码的功能?
【发布时间】:2012-05-21 00:48:04
【问题描述】:

我正在使用 Openssl 0.9.8k,在我的项目中使用 EVP API 使用 AES256CBC 加密/解密数据。

现在我正在使用fgets(pwd,pwd_len,stdin) 获取用户输入的密码。

openssl 是否有任何功能可以促进安全密码输入。 我尝试在网上搜索但找不到任何内容。(openssl 文档本身是不够的)

对任何文档的任何建议或指示都将受到高度赞赏。

注意:: 如果 Openssl 没有这样的功能,有人可以建议我在我当前的方法中使用 fgets 从标准输入获取密码时可能被利用的安全漏洞,以便我可以为此编写自己的自定义函数。

非常感谢

【问题讨论】:

标签: c linux cryptography passwords openssl


【解决方案1】:

如果您使用 pem 例程打开受密码保护的文件,openssl 将提示用户输入密码 - 它在 http://www.openssl.org/docs/crypto/pem.html 中进行了描述(搜索“提示”)。这些函数还允许您指定执行提示的回调例程;默认回调是提示用户的回调。

我找不到默认回调例程的任何文档 - 我认为您需要在代码中寻找。但如果您只是想读取受密码保护的文件,那么以上内容可能就足够了。

【讨论】:

  • 感谢您的回复.. 我会调查的。此外,在通过 EVP api 源时,我遇到了 openssl/crypto/evp 中的文件 EVP_key.c,在其中我发现定义了 3 个函数,即 EVP_set_pw_prompt() EVP_get_pwd_prompt() 和 EVP_read_pw_string() .. 但找不到任何文档.关于他们的任何想法.. 非常感谢
  • 并非如此。我猜它们是相似的(设置允许设置回调)。也许 read_pwd_string 是你需要的?最好只阅读代码...(有时使用 openssl 编写一个调用例程然后在调试器中逐步执行的小程序是值得的 - 这有助于解决不同指针的混乱含义)。
  • 哦,非常感谢。我将从为其编写代码开始..虽然在谷歌搜索之后这是我可以接触到的最合乎逻辑的链接umich.edu/~x509/ssleay/evp_passwd.html
猜你喜欢
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2014-04-29
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多