Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB查找字段哈希已知的文档_Mongodb_Hash - Fatal编程技术网

MongoDB查找字段哈希已知的文档

MongoDB查找字段哈希已知的文档,mongodb,hash,Mongodb,Hash,在我的MongoDB中有一组文档,如{name:'john',password:'secret'}。现在我想使用这个数据库在我的应用程序中进行身份验证。为了安全起见,应用程序本身不知道密码,而只知道其md5校验和5ebe2294ecd0e0f08eab7690d2a6ee69 我是否可以使用findOne请求来检查用户凭据 当然,我可以只做x=db.users.findOne({name:'john'}),然后将md5应用于x.password,并将其与已知的校验和进行比较,但这是一种相当糟糕的

在我的MongoDB中有一组文档,如
{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)。然后您的查询也会变得非常简单。