c++ - Qt C++ 双因素认证

标签 c++ qt

我正在开发一个 Qt 应用程序,它需要用户登录才能使用该应用程序。我想使用双因素身份验证,密码和 USB 内存棒是两种身份验证形式。

是否有支持加密的 Qt 库?散列/加密和存储密码和私钥/公钥的最安全方式是什么?

最佳答案

Qt 通过 QCryptographicHash 提供内置的加密哈希类(class)。它至少支持 MD5、SHA-1 和 SHA-512。 MD5 很糟糕,而 SHA-1 已经过时了。我会说使用 SHA-256 或 SHA-512 ......用当前的技术都很难暴力破解。

无论您将密码存储在何处,您都需要使用(冗长的)盐来保存它。任何随机字符串都可以。

进行双因素身份验证的一种可能方法是将盐存储在 USB 内存棒上,这样除非盐文件存在,否则您的程序不知道如何解密密码。这或多或少是 pam_usb 在 Linux 中所做的。 (pam_usb使用一次一密,可以看source。)

关于c++ - Qt C++ 双因素认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19352937/

相关文章:

c++ - 如何从单链表中删除每第 10 个节点?

qt - 有人将 Qt 提交给他们自己的源代码管理吗?

c++ - 找不到 Qt vulkan 类

c++ - 如何从 QImage/QLabel 中删除裁剪后的矩形?

c++ - typedef 和函数声明错误

c++ - 修复 C++ 多重继承不明确调用

c++ - 如何转发声明用作成员变量的结构

python - QDoubleSpinBox “backspace”键的编辑行为

c++ - 如何抑制这个 - qglobal.h :320:6: warning: #warning "This version of Mac OS X is unsupported"?

c++ - 函数 typedef 可以与 extern "C"关联吗