password-blacklist
Version:
Check passwords against a blacklist
34 lines (28 loc) • 881 B
JavaScript
const readline = require('readline')
const path = require('path')
const zlib = require('zlib')
const fs = require('fs')
const passwordFilename = path.resolve(__dirname, './data/passwords.txt.gz')
module.exports = (password) => new Promise((resolve, reject) => {
const file = fs.createReadStream(passwordFilename).on('error', onError)
const gunzip = zlib.createGunzip().on('error', onError)
const lines = readline.createInterface({
input: file.pipe(gunzip)
}).on('line', (input) => {
if (input === password || input.trim().toLowerCase() === password.trim().toLowerCase()) {
resolve(true)
cleanup()
}
}).on('close', () => resolve(false))
.on('error', onError)
function onError (err) {
reject(err)
cleanup()
}
function cleanup () {
file.close()
// crashes for some reason
// gunzip.close()
lines.close()
}
})