2.4 KiB
2.4 KiB
id | title | challengeType |
---|---|---|
58a25bcff9fc0f352b528e7e | Hash and Compare Passwords Synchronously | 2 |
Description
var hash = bcrypt.hashSync(myPlaintextPassword, saltRounds);
Add this method of hashing to your code and then log the result to the console. Again, the variables used are already defined in the server so you wont need to adjust them. You may notice even though you are hashing the same password as in the async function, the result in the console is different- this is due to the salt being randomly generated each time as seen by the first 22 characters in the third string of the hash. Now to compare a password input with the new sync hash, you would use the compareSync method:
var result = bcrypt.compareSync(myPlaintextPassword, hash);
with the result being a boolean true or false. Add this function in and log to the console the result to see it working.
Submit your page when you think you've got it right. If you ran into errors during these challenges you can take a look at the example completed code here.
Instructions
Tests
tests:
- text: Sync hash generated and correctly compared
testString: getUserInput => $.get(getUserInput('url')+ '/_api/server.js') .then(data => { assert.match(data, /START_SYNC[^]*hash.*=.*bcrypt.hashSync.*myPlaintextPassword( |),( |)saltRounds[^]*END_SYNC/gi, 'You should call bcrypt.hashSync on myPlaintextPassword with saltRounds'); assert.match(data, /START_SYNC[^]*result.*=.*bcrypt.compareSync.*myPlaintextPassword( |),( |)hash[^]*END_SYNC/gi, 'You should call bcrypt.compareSync on myPlaintextPassword with the hash generated in the last line'); }, xhr => { throw new Error(xhr.statusText); })
Challenge Seed
Solution
// solution required