0

我的网站有这个功能:

密码更改功能 ,但我不知道如何使它工作?这是我的一位用户的数据:

{
"_id" : ObjectId("58529494f2c495228479660f"),
"salt" : "42499bf0fdc9280bf8eaac90e2f5e482c24913ef53897bdba67f9482816f3e3d",
"hash" : "c316f0c3ab55a138c2a2e4880058c74810b9ed63c8fde8d6c992c80d0cd56ecab6bcc3c090fcab8fa4ebff61e68c457793e683bcbea9b7af7afa52e544e4b6cc4393b5b42c2e1c7e74dbd1a5c5fcd710563060dfff0dc4f30f2bb2f164bacccb6866add883466bb38d7c65992560c5f34936eda191749d4bc39af5c3c177aa2af0aa947bec642586210284285c7a959d6fcd7ae8ff2000792210f4ea8d1627df9a855a074d0620a3aaf7037264874a88207023b596d68f199939c2afe1aedf60f9bd73ecbf27fa0b6285e8157b89b4bc26e9838eed53b4082e330e01d5f11266b920d48f18492dc25404b920eab3f258eda0a21f40ea6b3496ce27358c1a67b58807169ac8ecd19d73069f72cdabab89e4755236911f9a641c3cc1858c1c3379c6041a6422fca985ffff932a14490c1cede3a04a6ef88e9d3bcf894fac5865db48fa253796041e682d7e132d70cefd53a610dfb761e30382444fdfce6cb7e7c79c61e14e6a36ebfbe2d20e4aed88ec6e885a45d951959e186464eb6c4ee9501e17d029be8afa4ed2d3b3142639872edef993a0c45dc717e36cd6022bcb25991df499afc90d35cf803a97a043f45e392bfd4c12f6b959a58d3d18017cea3f8d63bf3c6a5aded3d5aa1269054ee5c9a32bc2e10c251fc12afb5d60f22b8723d79f792398f7bf4fe791b29d6a24438399d28bc9197ea95cf7d6cc22e64fe1a954de",
"username" : "Isaac",
"__v" : 0,
"email" : "isaac@gmail.com",
"name" : "Isaac"}

为了重置密码,我们需要: 1- 希望用户输入他们当前的密码 2- 如果这是真的,我们应该删除当前密码并用它替换新的哈希密码

但我不知道该怎么做,我可以得到他们的当前密码,新密码和重复密码,但我不知道如何将他们的密码与当前密码进行比较。如果有人可以帮助我,我将非常感激。

4

2 回答 2

0

您必须比较旧密码和新密码的两个哈希值。首先,使用给定的 salt 为您的新密码创建一个哈希值。然后和你的旧的比较。

于 2016-12-28T09:29:48.510 回答
0

所以这个想法基本上是获取用户的新密码,生成盐,它将用于加密密码,然后传递盐和新密码以生成哈希,这是您的新密码和您生成的盐的组合.

所以首先生成盐,然后生成哈希。

下次当用户再次登录时,从数据库中获取盐,然后使用用户指定的密码和盐并生成哈希。比较两个哈希值(一个来自数据库,一个用户给出)。如果相等,则将他登录,否则密码不正确。仔细阅读加密的文档以获得更好的理解。

于 2016-12-28T09:30:16.850 回答