我正在开发一个 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/