MongoDB查找字段哈希已知的文档
在我的MongoDB中有一组文档,如MongoDB查找字段哈希已知的文档,mongodb,hash,Mongodb,Hash,在我的MongoDB中有一组文档,如{name:'john',password:'secret'}。现在我想使用这个数据库在我的应用程序中进行身份验证。为了安全起见,应用程序本身不知道密码,而只知道其md5校验和5ebe2294ecd0e0f08eab7690d2a6ee69 我是否可以使用findOne请求来检查用户凭据 当然,我可以只做x=db.users.findOne({name:'john'}),然后将md5应用于x.password,并将其与已知的校验和进行比较,但这是一种相当糟糕的
{name:'john',password:'secret'}
。现在我想使用这个数据库在我的应用程序中进行身份验证。为了安全起见,应用程序本身不知道密码,而只知道其md5校验和5ebe2294ecd0e0f08eab7690d2a6ee69
我是否可以使用findOne
请求来检查用户凭据
当然,我可以只做x=db.users.findOne({name:'john'})
,然后将md5应用于x.password
,并将其与已知的校验和进行比较,但这是一种相当糟糕的方法,因为应用程序会知道真正的密码
我在找像这样的命令
findOne({name:'john',密码:{$md5:'5ebe2294ecd0e0f08eab7690d2a6ee69'})
有没有可能存在这样的表达式?在数据库中存储原始密码实际上比在登录阶段让应用程序知道用户密码要糟糕得多。如果有人窃取数据库,他们将直接访问所有密码,这是一场灾难。你应该做的是在MongoDB中存储MD5哈希(salted)。在数据库中存储原始密码实际上比在登录阶段让应用程序知道用户密码要糟糕得多。如果有人窃取数据库,他们将直接访问所有密码,这是一场灾难。你应该做的是在MongoDB中存储MD5哈希(salted)。然后您的查询也会变得非常简单。