目前正在Qt中为测验计划构建面向身份验证服务。
据我了解,当将用户密码存储在数据库中时,必须将其隐藏,以防万一它落入坏人之手。
流行的方法似乎是将Salt添加到密码然后存储组合的计算散列的过程。
稍后可以比较此哈希:
HASH(userinput + SALT)= StoredHash
Qt提供QCryptographicHash :: hash(数据,算法方法)但由于密钥可能是随机的,所以我看不出它是如何有用的。
或者Qt提供QMessageAuthenticationCode :: hash(消息,密钥,算法方法)我认为消息是userpassword并且密钥是pseudo_random(row_id)是正确的。
我正在考虑使用Sha2-256 Algorithim我需要Cryptographically secure pseudorandom number generator吗?
答案 0 :(得分:0)
Qt Library组件确实不适合加密。
MongoDB很好地插入,虽然相对较新的libSodiums implementation of Argon和其他人说的很好。
.pro
QMAKE_CXXFLAGS += -lsodium
QMAKE_LFLAGS += -lsodium
答案 1 :(得分:0)
目前常用的散列密码算法是bcrypt。
有一个简单的C ++实现here
哈希密码有两个重要的事项:
bcrypt实现这两个。