|
@ -1,3 +1,5 @@ |
|
|
|
|
|
'use strict'; |
|
|
|
|
|
|
|
|
// Import needed libraries
|
|
|
// Import needed libraries
|
|
|
import bcrypt from 'bcryptjs'; |
|
|
import bcrypt from 'bcryptjs'; |
|
|
|
|
|
|
|
@ -6,25 +8,28 @@ const generateHash = async (password) => { |
|
|
try { |
|
|
try { |
|
|
const salt = await bcrypt.genSalt(12); |
|
|
const salt = await bcrypt.genSalt(12); |
|
|
const hash = await bcrypt.hash(password, salt); |
|
|
const hash = await bcrypt.hash(password, salt); |
|
|
|
|
|
// eslint-disable-next-line no-console
|
|
|
console.log(`PASSWORD_HASH='${hash}'`); |
|
|
console.log(`PASSWORD_HASH='${hash}'`); |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
throw new Error(`Failed to generate hash : ${error}`); |
|
|
throw new Error(`Failed to generate hash : ${error}`); |
|
|
} |
|
|
} |
|
|
} |
|
|
}; |
|
|
|
|
|
|
|
|
// Function to compare password with hash
|
|
|
// Function to compare password with hash
|
|
|
const comparePassword = async (password, hash) => { |
|
|
const comparePassword = async (password, hash) => { |
|
|
try { |
|
|
try { |
|
|
const match = await bcrypt.compare(password, hash); |
|
|
const match = await bcrypt.compare(password, hash); |
|
|
if (match) { |
|
|
if (match) { |
|
|
|
|
|
// eslint-disable-next-line no-console
|
|
|
console.log('Password matches the hash !'); |
|
|
console.log('Password matches the hash !'); |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
// eslint-disable-next-line no-console
|
|
|
console.log('Password does not match the hash.'); |
|
|
console.log('Password does not match the hash.'); |
|
|
} |
|
|
} |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
throw new Error(`Failed to compare password and hash : ${error}`); |
|
|
throw new Error(`Failed to compare password and hash : ${error}`); |
|
|
} |
|
|
} |
|
|
} |
|
|
}; |
|
|
|
|
|
|
|
|
(async () => { |
|
|
(async () => { |
|
|
try { |
|
|
try { |
|
@ -40,10 +45,10 @@ const comparePassword = async (password, hash) => { |
|
|
} else if (password) { |
|
|
} else if (password) { |
|
|
await generateHash(password); |
|
|
await generateHash(password); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
process.exit(0); |
|
|
|
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
|
|
|
// eslint-disable-next-line no-console
|
|
|
console.error(error); |
|
|
console.error(error); |
|
|
|
|
|
// eslint-disable-next-line no-process-exit
|
|
|
process.exit(1); |
|
|
process.exit(1); |
|
|
} |
|
|
} |
|
|
})(); |
|
|
})(); |
|
|